@openora/core 0.4.0 → 0.4.1-canary.100

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 (1909) hide show
  1. package/LICENSE-COMMERCIAL.md +2 -2
  2. package/README.md +18 -12
  3. package/bin/migrate.mjs +55 -0
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/admin-console/__tests__/backoffice.router.test.js +82 -51
  6. package/dist/admin-console/__tests__/backoffice.router.test.js.map +1 -1
  7. package/dist/admin-console/__tests__/backoffice.service.int.test.d.ts +2 -0
  8. package/dist/admin-console/__tests__/backoffice.service.int.test.d.ts.map +1 -0
  9. package/dist/admin-console/__tests__/backoffice.service.int.test.js +333 -0
  10. package/dist/admin-console/__tests__/backoffice.service.int.test.js.map +1 -0
  11. package/dist/admin-console/contract/index.d.ts +286 -30
  12. package/dist/admin-console/contract/index.d.ts.map +1 -1
  13. package/dist/admin-console/contract/index.js +81 -13
  14. package/dist/admin-console/contract/index.js.map +1 -1
  15. package/dist/admin-console/plugin.d.ts +137 -1
  16. package/dist/admin-console/plugin.d.ts.map +1 -1
  17. package/dist/admin-console/plugin.js +6 -6
  18. package/dist/admin-console/plugin.js.map +1 -1
  19. package/dist/admin-console/router/index.d.ts +127 -19
  20. package/dist/admin-console/router/index.d.ts.map +1 -1
  21. package/dist/admin-console/router/index.js +18 -2
  22. package/dist/admin-console/router/index.js.map +1 -1
  23. package/dist/admin-console/service/backoffice.service.d.ts +66 -40
  24. package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
  25. package/dist/admin-console/service/backoffice.service.js +80 -39
  26. package/dist/admin-console/service/backoffice.service.js.map +1 -1
  27. package/dist/analytics/__tests__/analytics.contract.test.d.ts +2 -0
  28. package/dist/analytics/__tests__/analytics.contract.test.d.ts.map +1 -0
  29. package/dist/analytics/__tests__/analytics.contract.test.js +36 -0
  30. package/dist/analytics/__tests__/analytics.contract.test.js.map +1 -0
  31. package/dist/analytics/__tests__/analytics.router.test.d.ts +2 -0
  32. package/dist/analytics/__tests__/analytics.router.test.d.ts.map +1 -0
  33. package/dist/analytics/__tests__/analytics.router.test.js +56 -0
  34. package/dist/analytics/__tests__/analytics.router.test.js.map +1 -0
  35. package/dist/analytics/__tests__/financial-analytics.service.test.d.ts +2 -0
  36. package/dist/analytics/__tests__/financial-analytics.service.test.d.ts.map +1 -0
  37. package/dist/analytics/__tests__/financial-analytics.service.test.js +87 -0
  38. package/dist/analytics/__tests__/financial-analytics.service.test.js.map +1 -0
  39. package/dist/analytics/__tests__/funnel-analytics.service.test.d.ts +2 -0
  40. package/dist/analytics/__tests__/funnel-analytics.service.test.d.ts.map +1 -0
  41. package/dist/analytics/__tests__/funnel-analytics.service.test.js +42 -0
  42. package/dist/analytics/__tests__/funnel-analytics.service.test.js.map +1 -0
  43. package/dist/analytics/contract/financial.d.ts +121 -0
  44. package/dist/analytics/contract/financial.d.ts.map +1 -0
  45. package/dist/analytics/contract/financial.js +45 -0
  46. package/dist/analytics/contract/financial.js.map +1 -0
  47. package/dist/analytics/contract/funnel.d.ts +52 -0
  48. package/dist/analytics/contract/funnel.d.ts.map +1 -0
  49. package/dist/analytics/contract/funnel.js +24 -0
  50. package/dist/analytics/contract/funnel.js.map +1 -0
  51. package/dist/analytics/contract/index.d.ts +68 -0
  52. package/dist/analytics/contract/index.d.ts.map +1 -0
  53. package/dist/analytics/contract/index.js +9 -0
  54. package/dist/analytics/contract/index.js.map +1 -0
  55. package/dist/analytics/index.d.ts +2 -0
  56. package/dist/analytics/index.d.ts.map +1 -0
  57. package/dist/analytics/index.js +2 -0
  58. package/dist/analytics/index.js.map +1 -0
  59. package/dist/analytics/plugin.d.ts +139 -0
  60. package/dist/analytics/plugin.d.ts.map +1 -0
  61. package/dist/analytics/plugin.js +13 -0
  62. package/dist/analytics/plugin.js.map +1 -0
  63. package/dist/analytics/router/index.d.ts +69 -0
  64. package/dist/analytics/router/index.d.ts.map +1 -0
  65. package/dist/analytics/router/index.js +24 -0
  66. package/dist/analytics/router/index.js.map +1 -0
  67. package/dist/analytics/server.d.ts +5 -0
  68. package/dist/analytics/server.d.ts.map +1 -0
  69. package/dist/analytics/server.js +5 -0
  70. package/dist/analytics/server.js.map +1 -0
  71. package/dist/analytics/service/financial-analytics.service.d.ts +14 -0
  72. package/dist/analytics/service/financial-analytics.service.d.ts.map +1 -0
  73. package/dist/analytics/service/financial-analytics.service.js +145 -0
  74. package/dist/analytics/service/financial-analytics.service.js.map +1 -0
  75. package/dist/analytics/service/funnel-analytics.service.d.ts +11 -0
  76. package/dist/analytics/service/funnel-analytics.service.d.ts.map +1 -0
  77. package/dist/analytics/service/funnel-analytics.service.js +83 -0
  78. package/dist/analytics/service/funnel-analytics.service.js.map +1 -0
  79. package/dist/audit/__tests__/audit.service.int.test.d.ts +2 -0
  80. package/dist/audit/__tests__/audit.service.int.test.d.ts.map +1 -0
  81. package/dist/audit/__tests__/audit.service.int.test.js +633 -0
  82. package/dist/audit/__tests__/audit.service.int.test.js.map +1 -0
  83. package/dist/audit/__tests__/map-event.test.d.ts +2 -0
  84. package/dist/audit/__tests__/map-event.test.d.ts.map +1 -0
  85. package/dist/audit/__tests__/map-event.test.js +27 -0
  86. package/dist/audit/__tests__/map-event.test.js.map +1 -0
  87. package/dist/audit/contract/index.d.ts +68 -10
  88. package/dist/audit/contract/index.d.ts.map +1 -1
  89. package/dist/audit/contract/index.js +24 -4
  90. package/dist/audit/contract/index.js.map +1 -1
  91. package/dist/audit/plugin.d.ts +138 -1
  92. package/dist/audit/plugin.d.ts.map +1 -1
  93. package/dist/audit/plugin.js +398 -31
  94. package/dist/audit/plugin.js.map +1 -1
  95. package/dist/audit/router/index.d.ts +29 -5
  96. package/dist/audit/router/index.d.ts.map +1 -1
  97. package/dist/audit/router/index.js +1 -5
  98. package/dist/audit/router/index.js.map +1 -1
  99. package/dist/audit/service/audit.service.d.ts +10 -6
  100. package/dist/audit/service/audit.service.d.ts.map +1 -1
  101. package/dist/audit/service/audit.service.js +87 -34
  102. package/dist/audit/service/audit.service.js.map +1 -1
  103. package/dist/casino/gaming/__tests__/admin-reporting.int.test.d.ts +2 -0
  104. package/dist/casino/gaming/__tests__/admin-reporting.int.test.d.ts.map +1 -0
  105. package/dist/casino/gaming/__tests__/admin-reporting.int.test.js +126 -0
  106. package/dist/casino/gaming/__tests__/admin-reporting.int.test.js.map +1 -0
  107. package/dist/casino/gaming/__tests__/gaming.service.int.test.d.ts +2 -0
  108. package/dist/casino/gaming/__tests__/gaming.service.int.test.d.ts.map +1 -0
  109. package/dist/casino/gaming/__tests__/gaming.service.int.test.js +181 -0
  110. package/dist/casino/gaming/__tests__/gaming.service.int.test.js.map +1 -0
  111. package/dist/casino/gaming/admin-reporting.d.ts +9 -0
  112. package/dist/casino/gaming/admin-reporting.d.ts.map +1 -0
  113. package/dist/casino/gaming/admin-reporting.js +79 -0
  114. package/dist/casino/gaming/admin-reporting.js.map +1 -0
  115. package/dist/casino/gaming/contract/index.d.ts +19 -0
  116. package/dist/casino/gaming/contract/index.d.ts.map +1 -1
  117. package/dist/casino/gaming/contract/index.js +9 -3
  118. package/dist/casino/gaming/contract/index.js.map +1 -1
  119. package/dist/casino/gaming/drizzle/migrations/0001_easy_ben_grimm.sql +4 -0
  120. package/dist/casino/gaming/drizzle/migrations/0002_yummy_lifeguard.sql +4 -0
  121. package/dist/casino/gaming/drizzle/migrations/meta/0001_snapshot.json +188 -0
  122. package/dist/casino/gaming/drizzle/migrations/meta/0002_snapshot.json +237 -0
  123. package/dist/casino/gaming/drizzle/migrations/meta/_journal.json +14 -0
  124. package/dist/casino/gaming/plugin.d.ts +138 -1
  125. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  126. package/dist/casino/gaming/plugin.js +9 -5
  127. package/dist/casino/gaming/plugin.js.map +1 -1
  128. package/dist/casino/gaming/router/index.d.ts +11 -0
  129. package/dist/casino/gaming/router/index.d.ts.map +1 -1
  130. package/dist/casino/gaming/router/index.js +6 -2
  131. package/dist/casino/gaming/router/index.js.map +1 -1
  132. package/dist/casino/gaming/schema/index.d.ts +18 -0
  133. package/dist/casino/gaming/schema/index.d.ts.map +1 -1
  134. package/dist/casino/gaming/schema/index.js +13 -3
  135. package/dist/casino/gaming/schema/index.js.map +1 -1
  136. package/dist/casino/gaming/service/gaming.service.d.ts +19 -12
  137. package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
  138. package/dist/casino/gaming/service/gaming.service.js +51 -24
  139. package/dist/casino/gaming/service/gaming.service.js.map +1 -1
  140. package/dist/casino/lobby/__tests__/lobby.cache.int.test.d.ts +2 -0
  141. package/dist/casino/lobby/__tests__/lobby.cache.int.test.d.ts.map +1 -0
  142. package/dist/casino/lobby/__tests__/lobby.cache.int.test.js +56 -0
  143. package/dist/casino/lobby/__tests__/lobby.cache.int.test.js.map +1 -0
  144. package/dist/casino/lobby/plugin.d.ts +136 -1
  145. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  146. package/dist/casino/lobby/plugin.js +3 -3
  147. package/dist/casino/lobby/plugin.js.map +1 -1
  148. package/dist/casino/server.d.ts +1 -0
  149. package/dist/casino/server.d.ts.map +1 -1
  150. package/dist/casino/server.js +1 -0
  151. package/dist/casino/server.js.map +1 -1
  152. package/dist/cms/__tests__/cms.reads.int.test.d.ts +2 -0
  153. package/dist/cms/__tests__/cms.reads.int.test.d.ts.map +1 -0
  154. package/dist/cms/__tests__/cms.reads.int.test.js +66 -0
  155. package/dist/cms/__tests__/cms.reads.int.test.js.map +1 -0
  156. package/dist/cms/__tests__/cms.router.int.test.d.ts +2 -0
  157. package/dist/cms/__tests__/cms.router.int.test.d.ts.map +1 -0
  158. package/dist/cms/__tests__/cms.router.int.test.js +96 -0
  159. package/dist/cms/__tests__/cms.router.int.test.js.map +1 -0
  160. package/dist/cms/__tests__/cms.service.int.test.d.ts +2 -0
  161. package/dist/cms/__tests__/cms.service.int.test.d.ts.map +1 -0
  162. package/dist/cms/__tests__/cms.service.int.test.js +119 -0
  163. package/dist/cms/__tests__/cms.service.int.test.js.map +1 -0
  164. package/dist/cms/plugin.d.ts +136 -1
  165. package/dist/cms/plugin.d.ts.map +1 -1
  166. package/dist/cms/plugin.js +3 -3
  167. package/dist/cms/plugin.js.map +1 -1
  168. package/dist/cms/router/index.d.ts.map +1 -1
  169. package/dist/cms/router/index.js +12 -12
  170. package/dist/cms/router/index.js.map +1 -1
  171. package/dist/cms/service/cms.service.d.ts +7 -7
  172. package/dist/cms/service/cms.service.d.ts.map +1 -1
  173. package/dist/cms/service/cms.service.js +81 -25
  174. package/dist/cms/service/cms.service.js.map +1 -1
  175. package/dist/common/errors/__tests__/errors.mapper.test.d.ts +2 -0
  176. package/dist/common/errors/__tests__/errors.mapper.test.d.ts.map +1 -0
  177. package/dist/common/errors/__tests__/errors.mapper.test.js +59 -0
  178. package/dist/common/errors/__tests__/errors.mapper.test.js.map +1 -0
  179. package/dist/common/errors/errors.classes.js +3 -3
  180. package/dist/common/errors/errors.classes.js.map +1 -1
  181. package/dist/common/errors/errors.mapper.js +1 -1
  182. package/dist/common/errors/errors.mapper.js.map +1 -1
  183. package/dist/compliance/__tests__/assert.test.d.ts +2 -0
  184. package/dist/compliance/__tests__/assert.test.d.ts.map +1 -0
  185. package/dist/compliance/__tests__/assert.test.js +34 -0
  186. package/dist/compliance/__tests__/assert.test.js.map +1 -0
  187. package/dist/compliance/__tests__/compliance.service.int.test.d.ts +2 -0
  188. package/dist/compliance/__tests__/compliance.service.int.test.d.ts.map +1 -0
  189. package/dist/compliance/__tests__/compliance.service.int.test.js +162 -0
  190. package/dist/compliance/__tests__/compliance.service.int.test.js.map +1 -0
  191. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.int.test.d.ts +2 -0
  192. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.int.test.d.ts.map +1 -0
  193. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.int.test.js +82 -0
  194. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.int.test.js.map +1 -0
  195. package/dist/compliance/__tests__/kyc-admin.router.int.test.d.ts +2 -0
  196. package/dist/compliance/__tests__/kyc-admin.router.int.test.d.ts.map +1 -0
  197. package/dist/compliance/__tests__/kyc-admin.router.int.test.js +192 -0
  198. package/dist/compliance/__tests__/kyc-admin.router.int.test.js.map +1 -0
  199. package/dist/compliance/__tests__/kyc-webhook.router.int.test.d.ts +2 -0
  200. package/dist/compliance/__tests__/kyc-webhook.router.int.test.d.ts.map +1 -0
  201. package/dist/compliance/__tests__/kyc-webhook.router.int.test.js +173 -0
  202. package/dist/compliance/__tests__/kyc-webhook.router.int.test.js.map +1 -0
  203. package/dist/compliance/__tests__/kyc.service.int.test.d.ts +2 -0
  204. package/dist/compliance/__tests__/kyc.service.int.test.d.ts.map +1 -0
  205. package/dist/compliance/__tests__/kyc.service.int.test.js +275 -0
  206. package/dist/compliance/__tests__/kyc.service.int.test.js.map +1 -0
  207. package/dist/compliance/__tests__/limits.contract.test.d.ts +2 -0
  208. package/dist/compliance/__tests__/limits.contract.test.d.ts.map +1 -0
  209. package/dist/compliance/__tests__/limits.contract.test.js +43 -0
  210. package/dist/compliance/__tests__/limits.contract.test.js.map +1 -0
  211. package/dist/compliance/__tests__/rg-monitoring.service.int.test.d.ts +2 -0
  212. package/dist/compliance/__tests__/rg-monitoring.service.int.test.d.ts.map +1 -0
  213. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js +271 -0
  214. package/dist/compliance/__tests__/rg-monitoring.service.int.test.js.map +1 -0
  215. package/dist/compliance/__tests__/rg.contract.test.js +32 -14
  216. package/dist/compliance/__tests__/rg.contract.test.js.map +1 -1
  217. package/dist/compliance/__tests__/rg.router.int.test.d.ts +2 -0
  218. package/dist/compliance/__tests__/rg.router.int.test.d.ts.map +1 -0
  219. package/dist/compliance/__tests__/rg.router.int.test.js +158 -0
  220. package/dist/compliance/__tests__/rg.router.int.test.js.map +1 -0
  221. package/dist/compliance/__tests__/rg.service.int.test.d.ts +2 -0
  222. package/dist/compliance/__tests__/rg.service.int.test.d.ts.map +1 -0
  223. package/dist/compliance/__tests__/rg.service.int.test.js +356 -0
  224. package/dist/compliance/__tests__/rg.service.int.test.js.map +1 -0
  225. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts +18 -5
  226. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts.map +1 -1
  227. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js +58 -7
  228. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js.map +1 -1
  229. package/dist/compliance/contract/index.d.ts +428 -20
  230. package/dist/compliance/contract/index.d.ts.map +1 -1
  231. package/dist/compliance/contract/index.js +63 -4
  232. package/dist/compliance/contract/index.js.map +1 -1
  233. package/dist/compliance/contract/limits.d.ts +9 -2
  234. package/dist/compliance/contract/limits.d.ts.map +1 -1
  235. package/dist/compliance/contract/limits.js +21 -3
  236. package/dist/compliance/contract/limits.js.map +1 -1
  237. package/dist/compliance/contract/rg.d.ts +104 -34
  238. package/dist/compliance/contract/rg.d.ts.map +1 -1
  239. package/dist/compliance/contract/rg.js +37 -11
  240. package/dist/compliance/contract/rg.js.map +1 -1
  241. package/dist/compliance/drizzle/migrations/0001_funny_vance_astro.sql +5 -0
  242. package/dist/compliance/drizzle/migrations/0002_condemned_monster_badoon.sql +3 -0
  243. package/dist/compliance/drizzle/migrations/0003_public_spirit.sql +1 -0
  244. package/dist/compliance/drizzle/migrations/0004_military_silk_fever.sql +2 -0
  245. package/dist/compliance/drizzle/migrations/meta/0001_snapshot.json +660 -0
  246. package/dist/compliance/drizzle/migrations/meta/0002_snapshot.json +673 -0
  247. package/dist/compliance/drizzle/migrations/meta/0003_snapshot.json +679 -0
  248. package/dist/compliance/drizzle/migrations/meta/0004_snapshot.json +679 -0
  249. package/dist/compliance/drizzle/migrations/meta/_journal.json +28 -0
  250. package/dist/compliance/plugin.d.ts +139 -1
  251. package/dist/compliance/plugin.d.ts.map +1 -1
  252. package/dist/compliance/plugin.js +72 -20
  253. package/dist/compliance/plugin.js.map +1 -1
  254. package/dist/compliance/router/index.d.ts +262 -22
  255. package/dist/compliance/router/index.d.ts.map +1 -1
  256. package/dist/compliance/router/index.js +85 -25
  257. package/dist/compliance/router/index.js.map +1 -1
  258. package/dist/compliance/schema/index.d.ts +97 -18
  259. package/dist/compliance/schema/index.d.ts.map +1 -1
  260. package/dist/compliance/schema/index.js +19 -8
  261. package/dist/compliance/schema/index.js.map +1 -1
  262. package/dist/compliance/service/compliance.service.d.ts +39 -26
  263. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  264. package/dist/compliance/service/compliance.service.js +45 -38
  265. package/dist/compliance/service/compliance.service.js.map +1 -1
  266. package/dist/compliance/service/kyc.service.d.ts +167 -19
  267. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  268. package/dist/compliance/service/kyc.service.js +300 -55
  269. package/dist/compliance/service/kyc.service.js.map +1 -1
  270. package/dist/compliance/service/re-kyc-trigger.d.ts +4 -4
  271. package/dist/compliance/service/re-kyc-trigger.d.ts.map +1 -1
  272. package/dist/compliance/service/re-kyc-trigger.js +10 -6
  273. package/dist/compliance/service/re-kyc-trigger.js.map +1 -1
  274. package/dist/compliance/service/rg-eval.d.ts.map +1 -1
  275. package/dist/compliance/service/rg-eval.js +4 -2
  276. package/dist/compliance/service/rg-eval.js.map +1 -1
  277. package/dist/compliance/service/rg-monitoring.service.d.ts +7 -6
  278. package/dist/compliance/service/rg-monitoring.service.d.ts.map +1 -1
  279. package/dist/compliance/service/rg-monitoring.service.js +83 -40
  280. package/dist/compliance/service/rg-monitoring.service.js.map +1 -1
  281. package/dist/compliance/service/rg.service.d.ts +40 -7
  282. package/dist/compliance/service/rg.service.d.ts.map +1 -1
  283. package/dist/compliance/service/rg.service.js +163 -51
  284. package/dist/compliance/service/rg.service.js.map +1 -1
  285. package/dist/contracts/__tests__/compose-contract.test.d.ts +2 -0
  286. package/dist/contracts/__tests__/compose-contract.test.d.ts.map +1 -0
  287. package/dist/contracts/__tests__/compose-contract.test.js +27 -0
  288. package/dist/contracts/__tests__/compose-contract.test.js.map +1 -0
  289. package/dist/contracts/adapters/__tests__/rate-limit.test.d.ts +2 -0
  290. package/dist/contracts/adapters/__tests__/rate-limit.test.d.ts.map +1 -0
  291. package/dist/contracts/adapters/__tests__/rate-limit.test.js +13 -0
  292. package/dist/contracts/adapters/__tests__/rate-limit.test.js.map +1 -0
  293. package/dist/contracts/adapters/__tests__/token.test.d.ts +2 -0
  294. package/dist/contracts/adapters/__tests__/token.test.d.ts.map +1 -0
  295. package/dist/contracts/adapters/__tests__/token.test.js +14 -0
  296. package/dist/contracts/adapters/__tests__/token.test.js.map +1 -0
  297. package/dist/contracts/adapters/admin-game-reporting.d.ts +43 -0
  298. package/dist/contracts/adapters/admin-game-reporting.d.ts.map +1 -0
  299. package/dist/contracts/adapters/admin-game-reporting.js +17 -0
  300. package/dist/contracts/adapters/admin-game-reporting.js.map +1 -0
  301. package/dist/contracts/adapters/admin-permission.d.ts +10 -0
  302. package/dist/contracts/adapters/admin-permission.d.ts.map +1 -1
  303. package/dist/contracts/adapters/admin-permission.js +6 -4
  304. package/dist/contracts/adapters/admin-permission.js.map +1 -1
  305. package/dist/contracts/adapters/admin-player-activity.d.ts +51 -0
  306. package/dist/contracts/adapters/admin-player-activity.d.ts.map +1 -0
  307. package/dist/contracts/adapters/admin-player-activity.js +3 -0
  308. package/dist/contracts/adapters/admin-player-activity.js.map +1 -0
  309. package/dist/contracts/adapters/admin-role-assignment-directory.d.ts +12 -0
  310. package/dist/contracts/adapters/admin-role-assignment-directory.d.ts.map +1 -0
  311. package/dist/contracts/adapters/admin-role-assignment-directory.js +3 -0
  312. package/dist/contracts/adapters/admin-role-assignment-directory.js.map +1 -0
  313. package/dist/contracts/adapters/admin-user-directory.d.ts +45 -4
  314. package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
  315. package/dist/contracts/adapters/admin-user-directory.js +8 -0
  316. package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
  317. package/dist/contracts/adapters/admin-wallet-reporting.d.ts +16 -5
  318. package/dist/contracts/adapters/admin-wallet-reporting.d.ts.map +1 -1
  319. package/dist/contracts/adapters/admin-wallet-reporting.js +9 -0
  320. package/dist/contracts/adapters/admin-wallet-reporting.js.map +1 -1
  321. package/dist/contracts/adapters/aggregator.d.ts +12 -0
  322. package/dist/contracts/adapters/aggregator.d.ts.map +1 -1
  323. package/dist/contracts/adapters/aggregator.js +5 -3
  324. package/dist/contracts/adapters/aggregator.js.map +1 -1
  325. package/dist/contracts/adapters/audit.d.ts +30 -4
  326. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  327. package/dist/contracts/adapters/audit.js.map +1 -1
  328. package/dist/contracts/adapters/broker.d.ts +23 -0
  329. package/dist/contracts/adapters/broker.d.ts.map +1 -1
  330. package/dist/contracts/adapters/broker.js +8 -6
  331. package/dist/contracts/adapters/broker.js.map +1 -1
  332. package/dist/contracts/adapters/cache.d.ts +11 -0
  333. package/dist/contracts/adapters/cache.d.ts.map +1 -1
  334. package/dist/contracts/adapters/cache.js +8 -6
  335. package/dist/contracts/adapters/cache.js.map +1 -1
  336. package/dist/contracts/adapters/chat-block-writer.d.ts +18 -0
  337. package/dist/contracts/adapters/chat-block-writer.d.ts.map +1 -0
  338. package/dist/contracts/adapters/chat-block-writer.js +7 -0
  339. package/dist/contracts/adapters/chat-block-writer.js.map +1 -0
  340. package/dist/contracts/adapters/chat-moderation.d.ts +75 -0
  341. package/dist/contracts/adapters/chat-moderation.d.ts.map +1 -0
  342. package/dist/contracts/adapters/chat-moderation.js +3 -0
  343. package/dist/contracts/adapters/chat-moderation.js.map +1 -0
  344. package/dist/contracts/adapters/chat-room-access.d.ts +6 -0
  345. package/dist/contracts/adapters/chat-room-access.d.ts.map +1 -0
  346. package/dist/contracts/adapters/chat-room-access.js +3 -0
  347. package/dist/contracts/adapters/chat-room-access.js.map +1 -0
  348. package/dist/contracts/adapters/chat-system-writer.d.ts +19 -0
  349. package/dist/contracts/adapters/chat-system-writer.d.ts.map +1 -0
  350. package/dist/contracts/adapters/chat-system-writer.js +3 -0
  351. package/dist/contracts/adapters/chat-system-writer.js.map +1 -0
  352. package/dist/contracts/adapters/email-template.d.ts +51 -0
  353. package/dist/contracts/adapters/email-template.d.ts.map +1 -0
  354. package/dist/contracts/adapters/email-template.js +50 -0
  355. package/dist/contracts/adapters/email-template.js.map +1 -0
  356. package/dist/contracts/adapters/email.d.ts +7 -0
  357. package/dist/contracts/adapters/email.d.ts.map +1 -1
  358. package/dist/contracts/adapters/email.js +7 -5
  359. package/dist/contracts/adapters/email.js.map +1 -1
  360. package/dist/contracts/adapters/error-tracking.d.ts +12 -0
  361. package/dist/contracts/adapters/error-tracking.d.ts.map +1 -0
  362. package/dist/contracts/adapters/error-tracking.js +3 -0
  363. package/dist/contracts/adapters/error-tracking.js.map +1 -0
  364. package/dist/contracts/adapters/game.d.ts +4 -0
  365. package/dist/contracts/adapters/game.d.ts.map +1 -1
  366. package/dist/contracts/adapters/game.js +4 -2
  367. package/dist/contracts/adapters/game.js.map +1 -1
  368. package/dist/contracts/adapters/geo-check-commands.d.ts +8 -0
  369. package/dist/contracts/adapters/geo-check-commands.d.ts.map +1 -0
  370. package/dist/contracts/adapters/geo-check-commands.js +3 -0
  371. package/dist/contracts/adapters/geo-check-commands.js.map +1 -0
  372. package/dist/contracts/adapters/geo-ip.d.ts +4 -0
  373. package/dist/contracts/adapters/geo-ip.d.ts.map +1 -1
  374. package/dist/contracts/adapters/geo-ip.js +4 -2
  375. package/dist/contracts/adapters/geo-ip.js.map +1 -1
  376. package/dist/contracts/adapters/gift-commands.d.ts +58 -0
  377. package/dist/contracts/adapters/gift-commands.d.ts.map +1 -0
  378. package/dist/contracts/adapters/gift-commands.js +11 -0
  379. package/dist/contracts/adapters/gift-commands.js.map +1 -0
  380. package/dist/contracts/adapters/identity-reader.d.ts +14 -4
  381. package/dist/contracts/adapters/identity-reader.d.ts.map +1 -1
  382. package/dist/contracts/adapters/identity-reader.js.map +1 -1
  383. package/dist/contracts/adapters/identity.d.ts +15 -0
  384. package/dist/contracts/adapters/identity.d.ts.map +1 -1
  385. package/dist/contracts/adapters/identity.js +5 -2
  386. package/dist/contracts/adapters/identity.js.map +1 -1
  387. package/dist/contracts/adapters/index.d.ts +58 -13
  388. package/dist/contracts/adapters/index.d.ts.map +1 -1
  389. package/dist/contracts/adapters/index.js +32 -11
  390. package/dist/contracts/adapters/index.js.map +1 -1
  391. package/dist/contracts/adapters/job-queue.d.ts +55 -0
  392. package/dist/contracts/adapters/job-queue.d.ts.map +1 -1
  393. package/dist/contracts/adapters/job-queue.js +11 -9
  394. package/dist/contracts/adapters/job-queue.js.map +1 -1
  395. package/dist/contracts/adapters/kyc.d.ts +121 -4
  396. package/dist/contracts/adapters/kyc.d.ts.map +1 -1
  397. package/dist/contracts/adapters/kyc.js +30 -5
  398. package/dist/contracts/adapters/kyc.js.map +1 -1
  399. package/dist/contracts/adapters/login-enforcement.d.ts +8 -0
  400. package/dist/contracts/adapters/login-enforcement.d.ts.map +1 -1
  401. package/dist/contracts/adapters/login-enforcement.js +8 -6
  402. package/dist/contracts/adapters/login-enforcement.js.map +1 -1
  403. package/dist/contracts/adapters/notification.d.ts +7 -0
  404. package/dist/contracts/adapters/notification.d.ts.map +1 -1
  405. package/dist/contracts/adapters/notification.js +7 -5
  406. package/dist/contracts/adapters/notification.js.map +1 -1
  407. package/dist/contracts/adapters/outbox.d.ts +14 -0
  408. package/dist/contracts/adapters/outbox.d.ts.map +1 -1
  409. package/dist/contracts/adapters/outbox.js +14 -12
  410. package/dist/contracts/adapters/outbox.js.map +1 -1
  411. package/dist/contracts/adapters/payment.d.ts +191 -2
  412. package/dist/contracts/adapters/payment.d.ts.map +1 -1
  413. package/dist/contracts/adapters/payment.js +12 -2
  414. package/dist/contracts/adapters/payment.js.map +1 -1
  415. package/dist/contracts/adapters/play-eligibility.d.ts +15 -0
  416. package/dist/contracts/adapters/play-eligibility.d.ts.map +1 -0
  417. package/dist/contracts/adapters/play-eligibility.js +3 -0
  418. package/dist/contracts/adapters/play-eligibility.js.map +1 -0
  419. package/dist/contracts/adapters/player-activity.d.ts +6 -0
  420. package/dist/contracts/adapters/player-activity.d.ts.map +1 -0
  421. package/dist/contracts/adapters/player-activity.js +3 -0
  422. package/dist/contracts/adapters/player-activity.js.map +1 -0
  423. package/dist/contracts/adapters/player-provisioning.d.ts +21 -0
  424. package/dist/contracts/adapters/player-provisioning.d.ts.map +1 -0
  425. package/dist/contracts/adapters/player-provisioning.js +3 -0
  426. package/dist/contracts/adapters/player-provisioning.js.map +1 -0
  427. package/dist/contracts/adapters/player-tags.d.ts +4 -0
  428. package/dist/contracts/adapters/player-tags.d.ts.map +1 -1
  429. package/dist/contracts/adapters/player-tags.js.map +1 -1
  430. package/dist/contracts/adapters/rain-commands.d.ts +27 -0
  431. package/dist/contracts/adapters/rain-commands.d.ts.map +1 -0
  432. package/dist/contracts/adapters/rain-commands.js +12 -0
  433. package/dist/contracts/adapters/rain-commands.js.map +1 -0
  434. package/dist/contracts/adapters/rate-limit.d.ts +41 -3
  435. package/dist/contracts/adapters/rate-limit.d.ts.map +1 -1
  436. package/dist/contracts/adapters/rate-limit.js +29 -6
  437. package/dist/contracts/adapters/rate-limit.js.map +1 -1
  438. package/dist/contracts/adapters/realtime.d.ts +106 -7
  439. package/dist/contracts/adapters/realtime.d.ts.map +1 -1
  440. package/dist/contracts/adapters/realtime.js +26 -10
  441. package/dist/contracts/adapters/realtime.js.map +1 -1
  442. package/dist/contracts/adapters/rng.d.ts +11 -0
  443. package/dist/contracts/adapters/rng.d.ts.map +1 -1
  444. package/dist/contracts/adapters/rng.js +11 -9
  445. package/dist/contracts/adapters/rng.js.map +1 -1
  446. package/dist/contracts/adapters/sms.d.ts +15 -0
  447. package/dist/contracts/adapters/sms.d.ts.map +1 -0
  448. package/dist/contracts/adapters/sms.js +9 -0
  449. package/dist/contracts/adapters/sms.js.map +1 -0
  450. package/dist/contracts/adapters/social-commands.d.ts +12 -0
  451. package/dist/contracts/adapters/social-commands.d.ts.map +1 -0
  452. package/dist/contracts/adapters/social-commands.js +7 -0
  453. package/dist/contracts/adapters/social-commands.js.map +1 -0
  454. package/dist/contracts/adapters/tag-evaluation-commands.d.ts +20 -0
  455. package/dist/contracts/adapters/tag-evaluation-commands.d.ts.map +1 -0
  456. package/dist/contracts/adapters/tag-evaluation-commands.js +13 -0
  457. package/dist/contracts/adapters/tag-evaluation-commands.js.map +1 -0
  458. package/dist/contracts/adapters/token.d.ts +28 -5
  459. package/dist/contracts/adapters/token.d.ts.map +1 -1
  460. package/dist/contracts/adapters/token.js +10 -8
  461. package/dist/contracts/adapters/token.js.map +1 -1
  462. package/dist/contracts/adapters/wallet-asset-catalog.d.ts +34 -0
  463. package/dist/contracts/adapters/wallet-asset-catalog.d.ts.map +1 -0
  464. package/dist/contracts/adapters/wallet-asset-catalog.js +3 -0
  465. package/dist/contracts/adapters/wallet-asset-catalog.js.map +1 -0
  466. package/dist/contracts/adapters/wallet-commands.d.ts +16 -5
  467. package/dist/contracts/adapters/wallet-commands.d.ts.map +1 -1
  468. package/dist/contracts/adapters/wallet-commands.js.map +1 -1
  469. package/dist/contracts/adapters/wallet-reader.d.ts +11 -3
  470. package/dist/contracts/adapters/wallet-reader.d.ts.map +1 -1
  471. package/dist/contracts/adapters/wallet-reader.js.map +1 -1
  472. package/dist/contracts/kit.d.ts +15 -0
  473. package/dist/contracts/kit.d.ts.map +1 -1
  474. package/dist/contracts/kit.js +1 -0
  475. package/dist/contracts/kit.js.map +1 -1
  476. package/dist/contracts/schemas/__tests__/common-schemas.test.d.ts +2 -0
  477. package/dist/contracts/schemas/__tests__/common-schemas.test.d.ts.map +1 -0
  478. package/dist/contracts/schemas/__tests__/common-schemas.test.js +21 -0
  479. package/dist/contracts/schemas/__tests__/common-schemas.test.js.map +1 -0
  480. package/dist/contracts/schemas/__tests__/events.test.d.ts +2 -0
  481. package/dist/contracts/schemas/__tests__/events.test.d.ts.map +1 -0
  482. package/dist/contracts/schemas/__tests__/events.test.js +51 -0
  483. package/dist/contracts/schemas/__tests__/events.test.js.map +1 -0
  484. package/dist/contracts/schemas/__tests__/igaming-config.test.d.ts +2 -0
  485. package/dist/contracts/schemas/__tests__/igaming-config.test.d.ts.map +1 -0
  486. package/dist/contracts/schemas/__tests__/igaming-config.test.js +38 -0
  487. package/dist/contracts/schemas/__tests__/igaming-config.test.js.map +1 -0
  488. package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts +2 -0
  489. package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts.map +1 -0
  490. package/dist/contracts/schemas/__tests__/player-schemas.test.js +30 -0
  491. package/dist/contracts/schemas/__tests__/player-schemas.test.js.map +1 -0
  492. package/dist/contracts/schemas/__tests__/tag-schemas.test.d.ts +2 -0
  493. package/dist/contracts/schemas/__tests__/tag-schemas.test.d.ts.map +1 -0
  494. package/dist/contracts/schemas/__tests__/tag-schemas.test.js +42 -0
  495. package/dist/contracts/schemas/__tests__/tag-schemas.test.js.map +1 -0
  496. package/dist/contracts/schemas/chat-command-metadata.d.ts +73 -0
  497. package/dist/contracts/schemas/chat-command-metadata.d.ts.map +1 -0
  498. package/dist/contracts/schemas/chat-command-metadata.js +67 -0
  499. package/dist/contracts/schemas/chat-command-metadata.js.map +1 -0
  500. package/dist/contracts/schemas/chat-command.d.ts +213 -0
  501. package/dist/contracts/schemas/chat-command.d.ts.map +1 -0
  502. package/dist/contracts/schemas/chat-command.js +44 -0
  503. package/dist/contracts/schemas/chat-command.js.map +1 -0
  504. package/dist/contracts/schemas/common.d.ts +19 -5
  505. package/dist/contracts/schemas/common.d.ts.map +1 -1
  506. package/dist/contracts/schemas/common.js +29 -4
  507. package/dist/contracts/schemas/common.js.map +1 -1
  508. package/dist/contracts/schemas/compliance.d.ts +1 -1
  509. package/dist/contracts/schemas/events.d.ts +549 -10
  510. package/dist/contracts/schemas/events.d.ts.map +1 -1
  511. package/dist/contracts/schemas/events.js +401 -64
  512. package/dist/contracts/schemas/events.js.map +1 -1
  513. package/dist/contracts/schemas/game.d.ts +9 -0
  514. package/dist/contracts/schemas/game.d.ts.map +1 -0
  515. package/dist/contracts/schemas/game.js +4 -0
  516. package/dist/contracts/schemas/game.js.map +1 -0
  517. package/dist/contracts/schemas/identity.d.ts +65 -2
  518. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  519. package/dist/contracts/schemas/identity.js +51 -3
  520. package/dist/contracts/schemas/identity.js.map +1 -1
  521. package/dist/contracts/schemas/igaming-config.d.ts +25 -1
  522. package/dist/contracts/schemas/igaming-config.d.ts.map +1 -1
  523. package/dist/contracts/schemas/igaming-config.js +2 -1
  524. package/dist/contracts/schemas/igaming-config.js.map +1 -1
  525. package/dist/contracts/schemas/index.d.ts +4 -0
  526. package/dist/contracts/schemas/index.d.ts.map +1 -1
  527. package/dist/contracts/schemas/index.js +4 -0
  528. package/dist/contracts/schemas/index.js.map +1 -1
  529. package/dist/contracts/schemas/platform-config.d.ts +74 -35
  530. package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
  531. package/dist/contracts/schemas/platform-config.js +75 -9
  532. package/dist/contracts/schemas/platform-config.js.map +1 -1
  533. package/dist/contracts/schemas/player.d.ts +63 -5
  534. package/dist/contracts/schemas/player.d.ts.map +1 -1
  535. package/dist/contracts/schemas/player.js +32 -6
  536. package/dist/contracts/schemas/player.js.map +1 -1
  537. package/dist/contracts/schemas/reporting.d.ts +20 -0
  538. package/dist/contracts/schemas/reporting.d.ts.map +1 -0
  539. package/dist/contracts/schemas/reporting.js +13 -0
  540. package/dist/contracts/schemas/reporting.js.map +1 -0
  541. package/dist/contracts/schemas/tag.d.ts +88 -4
  542. package/dist/contracts/schemas/tag.d.ts.map +1 -1
  543. package/dist/contracts/schemas/tag.js +16 -4
  544. package/dist/contracts/schemas/tag.js.map +1 -1
  545. package/dist/contracts/schemas/wallet-tx.d.ts +40 -1
  546. package/dist/contracts/schemas/wallet-tx.d.ts.map +1 -1
  547. package/dist/contracts/schemas/wallet-tx.js +34 -3
  548. package/dist/contracts/schemas/wallet-tx.js.map +1 -1
  549. package/dist/engagement/chat/__tests__/chat.service.int.test.d.ts +2 -0
  550. package/dist/engagement/chat/__tests__/chat.service.int.test.d.ts.map +1 -0
  551. package/dist/engagement/chat/__tests__/chat.service.int.test.js +1430 -0
  552. package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -0
  553. package/dist/engagement/chat/__tests__/global-chat-room.int.test.d.ts +2 -0
  554. package/dist/engagement/chat/__tests__/global-chat-room.int.test.d.ts.map +1 -0
  555. package/dist/engagement/chat/__tests__/global-chat-room.int.test.js +91 -0
  556. package/dist/engagement/chat/__tests__/global-chat-room.int.test.js.map +1 -0
  557. package/dist/engagement/chat/__tests__/moderation.test.js +2 -0
  558. package/dist/engagement/chat/__tests__/moderation.test.js.map +1 -1
  559. package/dist/engagement/chat/contract/constants.d.ts +11 -0
  560. package/dist/engagement/chat/contract/constants.d.ts.map +1 -0
  561. package/dist/engagement/chat/contract/constants.js +11 -0
  562. package/dist/engagement/chat/contract/constants.js.map +1 -0
  563. package/dist/engagement/chat/contract/index.d.ts +1948 -17
  564. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  565. package/dist/engagement/chat/contract/index.js +407 -11
  566. package/dist/engagement/chat/contract/index.js.map +1 -1
  567. package/dist/engagement/chat/drizzle/migrations/0001_cloudy_groot.sql +32 -0
  568. package/dist/engagement/chat/drizzle/migrations/0002_steep_zodiak.sql +3 -0
  569. package/dist/engagement/chat/drizzle/migrations/0003_stormy_king_bedlam.sql +9 -0
  570. package/dist/engagement/chat/drizzle/migrations/0004_panoramic_robin_chapel.sql +6 -0
  571. package/dist/engagement/chat/drizzle/migrations/0005_tranquil_gwen_stacy.sql +100 -0
  572. package/dist/engagement/chat/drizzle/migrations/0006_tiny_ultron.sql +3 -0
  573. package/dist/engagement/chat/drizzle/migrations/0007_seed_global_chat_room.sql +8 -0
  574. package/dist/engagement/chat/drizzle/migrations/meta/0001_snapshot.json +557 -0
  575. package/dist/engagement/chat/drizzle/migrations/meta/0002_snapshot.json +576 -0
  576. package/dist/engagement/chat/drizzle/migrations/meta/0003_snapshot.json +652 -0
  577. package/dist/engagement/chat/drizzle/migrations/meta/0004_snapshot.json +666 -0
  578. package/dist/engagement/chat/drizzle/migrations/meta/0005_snapshot.json +1422 -0
  579. package/dist/engagement/chat/drizzle/migrations/meta/0006_snapshot.json +1456 -0
  580. package/dist/engagement/chat/drizzle/migrations/meta/0007_snapshot.json +1456 -0
  581. package/dist/engagement/chat/drizzle/migrations/meta/_journal.json +49 -0
  582. package/dist/engagement/chat/index.d.ts +1 -2
  583. package/dist/engagement/chat/index.d.ts.map +1 -1
  584. package/dist/engagement/chat/index.js +1 -2
  585. package/dist/engagement/chat/index.js.map +1 -1
  586. package/dist/engagement/chat/moderation/moderate.d.ts.map +1 -1
  587. package/dist/engagement/chat/moderation/moderate.js +2 -1
  588. package/dist/engagement/chat/moderation/moderate.js.map +1 -1
  589. package/dist/engagement/chat/moderation/profanity.d.ts.map +1 -1
  590. package/dist/engagement/chat/moderation/profanity.js +2 -0
  591. package/dist/engagement/chat/moderation/profanity.js.map +1 -1
  592. package/dist/engagement/chat/plugin.d.ts +137 -1
  593. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  594. package/dist/engagement/chat/plugin.js +34 -5
  595. package/dist/engagement/chat/plugin.js.map +1 -1
  596. package/dist/engagement/chat/router/index.d.ts +1515 -17
  597. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  598. package/dist/engagement/chat/router/index.js +269 -28
  599. package/dist/engagement/chat/router/index.js.map +1 -1
  600. package/dist/engagement/chat/schema/index.d.ts +1508 -0
  601. package/dist/engagement/chat/schema/index.d.ts.map +1 -1
  602. package/dist/engagement/chat/schema/index.js +175 -3
  603. package/dist/engagement/chat/schema/index.js.map +1 -1
  604. package/dist/engagement/chat/service/chat-ban.service.d.ts +26 -0
  605. package/dist/engagement/chat/service/chat-ban.service.d.ts.map +1 -0
  606. package/dist/engagement/chat/service/chat-ban.service.js +139 -0
  607. package/dist/engagement/chat/service/chat-ban.service.js.map +1 -0
  608. package/dist/engagement/chat/service/chat-message-moderation.service.d.ts +14 -0
  609. package/dist/engagement/chat/service/chat-message-moderation.service.d.ts.map +1 -0
  610. package/dist/engagement/chat/service/chat-message-moderation.service.js +48 -0
  611. package/dist/engagement/chat/service/chat-message-moderation.service.js.map +1 -0
  612. package/dist/engagement/chat/service/chat-moderation.service.d.ts +30 -0
  613. package/dist/engagement/chat/service/chat-moderation.service.d.ts.map +1 -0
  614. package/dist/engagement/chat/service/chat-moderation.service.js +40 -0
  615. package/dist/engagement/chat/service/chat-moderation.service.js.map +1 -0
  616. package/dist/engagement/chat/service/chat-mute.service.d.ts +26 -0
  617. package/dist/engagement/chat/service/chat-mute.service.d.ts.map +1 -0
  618. package/dist/engagement/chat/service/chat-mute.service.js +151 -0
  619. package/dist/engagement/chat/service/chat-mute.service.js.map +1 -0
  620. package/dist/engagement/chat/service/chat-room-ban.service.d.ts +29 -0
  621. package/dist/engagement/chat/service/chat-room-ban.service.d.ts.map +1 -0
  622. package/dist/engagement/chat/service/chat-room-ban.service.js +105 -0
  623. package/dist/engagement/chat/service/chat-room-ban.service.js.map +1 -0
  624. package/dist/engagement/chat/service/chat-room-membership.service.d.ts +72 -0
  625. package/dist/engagement/chat/service/chat-room-membership.service.d.ts.map +1 -0
  626. package/dist/engagement/chat/service/chat-room-membership.service.js +176 -0
  627. package/dist/engagement/chat/service/chat-room-membership.service.js.map +1 -0
  628. package/dist/engagement/chat/service/chat-room-mute.service.d.ts +25 -0
  629. package/dist/engagement/chat/service/chat-room-mute.service.d.ts.map +1 -0
  630. package/dist/engagement/chat/service/chat-room-mute.service.js +89 -0
  631. package/dist/engagement/chat/service/chat-room-mute.service.js.map +1 -0
  632. package/dist/engagement/chat/service/chat.service.d.ts +1030 -32
  633. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  634. package/dist/engagement/chat/service/chat.service.js +1079 -76
  635. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  636. package/dist/engagement/chat/service/errors/chat-moderation.errors.d.ts +21 -0
  637. package/dist/engagement/chat/service/errors/chat-moderation.errors.d.ts.map +1 -0
  638. package/dist/engagement/chat/service/errors/chat-moderation.errors.js +31 -0
  639. package/dist/engagement/chat/service/errors/chat-moderation.errors.js.map +1 -0
  640. package/dist/engagement/chat-commands/contract/index.d.ts +361 -0
  641. package/dist/engagement/chat-commands/contract/index.d.ts.map +1 -0
  642. package/dist/engagement/chat-commands/contract/index.js +117 -0
  643. package/dist/engagement/chat-commands/contract/index.js.map +1 -0
  644. package/dist/engagement/chat-commands/drizzle/migrations/0000_daffy_lady_bullseye.sql +24 -0
  645. package/dist/engagement/chat-commands/drizzle/migrations/0001_sturdy_barracuda.sql +1 -0
  646. package/dist/engagement/chat-commands/drizzle/migrations/meta/0000_snapshot.json +164 -0
  647. package/dist/engagement/chat-commands/drizzle/migrations/meta/0001_snapshot.json +83 -0
  648. package/dist/engagement/chat-commands/drizzle/migrations/meta/_journal.json +20 -0
  649. package/dist/engagement/chat-commands/drizzle.config.d.ts +4 -0
  650. package/dist/engagement/chat-commands/drizzle.config.d.ts.map +1 -0
  651. package/dist/engagement/chat-commands/drizzle.config.js +21 -0
  652. package/dist/engagement/chat-commands/drizzle.config.js.map +1 -0
  653. package/dist/engagement/chat-commands/migrate.d.ts +3 -0
  654. package/dist/engagement/chat-commands/migrate.d.ts.map +1 -0
  655. package/dist/engagement/chat-commands/migrate.js +15 -0
  656. package/dist/engagement/chat-commands/migrate.js.map +1 -0
  657. package/dist/engagement/chat-commands/plugin.d.ts +139 -0
  658. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -0
  659. package/dist/engagement/chat-commands/plugin.js +15 -0
  660. package/dist/engagement/chat-commands/plugin.js.map +1 -0
  661. package/dist/engagement/chat-commands/router/index.d.ts +276 -0
  662. package/dist/engagement/chat-commands/router/index.d.ts.map +1 -0
  663. package/dist/engagement/chat-commands/router/index.js +76 -0
  664. package/dist/engagement/chat-commands/router/index.js.map +1 -0
  665. package/dist/engagement/chat-commands/schema/index.d.ts +138 -0
  666. package/dist/engagement/chat-commands/schema/index.d.ts.map +1 -0
  667. package/dist/engagement/chat-commands/schema/index.js +11 -0
  668. package/dist/engagement/chat-commands/schema/index.js.map +1 -0
  669. package/dist/engagement/chat-commands/seed/index.d.ts +3 -0
  670. package/dist/engagement/chat-commands/seed/index.d.ts.map +1 -0
  671. package/dist/engagement/chat-commands/seed/index.js +66 -0
  672. package/dist/engagement/chat-commands/seed/index.js.map +1 -0
  673. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.d.ts +2 -0
  674. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.d.ts.map +1 -0
  675. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +431 -0
  676. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -0
  677. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +73 -0
  678. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -0
  679. package/dist/engagement/chat-commands/service/chat-commands.service.js +258 -0
  680. package/dist/engagement/chat-commands/service/chat-commands.service.js.map +1 -0
  681. package/dist/engagement/contracts.d.ts +3 -0
  682. package/dist/engagement/contracts.d.ts.map +1 -1
  683. package/dist/engagement/contracts.js +3 -0
  684. package/dist/engagement/contracts.js.map +1 -1
  685. package/dist/engagement/index.d.ts +3 -0
  686. package/dist/engagement/index.d.ts.map +1 -1
  687. package/dist/engagement/index.js +3 -0
  688. package/dist/engagement/index.js.map +1 -1
  689. package/dist/engagement/notifications/__tests__/notifications.service.int.test.d.ts +2 -0
  690. package/dist/engagement/notifications/__tests__/notifications.service.int.test.d.ts.map +1 -0
  691. package/dist/engagement/notifications/__tests__/notifications.service.int.test.js +192 -0
  692. package/dist/engagement/notifications/__tests__/notifications.service.int.test.js.map +1 -0
  693. package/dist/engagement/notifications/contract/index.d.ts +40 -2
  694. package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
  695. package/dist/engagement/notifications/contract/index.js +17 -1
  696. package/dist/engagement/notifications/contract/index.js.map +1 -1
  697. package/dist/engagement/notifications/index.d.ts +1 -1
  698. package/dist/engagement/notifications/index.d.ts.map +1 -1
  699. package/dist/engagement/notifications/plugin.d.ts +138 -1
  700. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  701. package/dist/engagement/notifications/plugin.js +88 -9
  702. package/dist/engagement/notifications/plugin.js.map +1 -1
  703. package/dist/engagement/notifications/router/index.d.ts +8 -1
  704. package/dist/engagement/notifications/router/index.d.ts.map +1 -1
  705. package/dist/engagement/notifications/router/index.js +15 -6
  706. package/dist/engagement/notifications/router/index.js.map +1 -1
  707. package/dist/engagement/notifications/service/notifications.service.d.ts +6 -13
  708. package/dist/engagement/notifications/service/notifications.service.d.ts.map +1 -1
  709. package/dist/engagement/notifications/service/notifications.service.js +6 -14
  710. package/dist/engagement/notifications/service/notifications.service.js.map +1 -1
  711. package/dist/engagement/server.d.ts +3 -0
  712. package/dist/engagement/server.d.ts.map +1 -1
  713. package/dist/engagement/server.js +3 -0
  714. package/dist/engagement/server.js.map +1 -1
  715. package/dist/engagement/social/__tests__/social.plugin.int.test.d.ts +2 -0
  716. package/dist/engagement/social/__tests__/social.plugin.int.test.d.ts.map +1 -0
  717. package/dist/engagement/social/__tests__/social.plugin.int.test.js +100 -0
  718. package/dist/engagement/social/__tests__/social.plugin.int.test.js.map +1 -0
  719. package/dist/engagement/social/__tests__/social.router.int.test.d.ts +2 -0
  720. package/dist/engagement/social/__tests__/social.router.int.test.d.ts.map +1 -0
  721. package/dist/engagement/social/__tests__/social.router.int.test.js +215 -0
  722. package/dist/engagement/social/__tests__/social.router.int.test.js.map +1 -0
  723. package/dist/engagement/social/__tests__/social.service.int.test.d.ts +2 -0
  724. package/dist/engagement/social/__tests__/social.service.int.test.d.ts.map +1 -0
  725. package/dist/engagement/social/__tests__/social.service.int.test.js +810 -0
  726. package/dist/engagement/social/__tests__/social.service.int.test.js.map +1 -0
  727. package/dist/engagement/social/contract/index.d.ts +187 -0
  728. package/dist/engagement/social/contract/index.d.ts.map +1 -0
  729. package/dist/engagement/social/contract/index.js +107 -0
  730. package/dist/engagement/social/contract/index.js.map +1 -0
  731. package/dist/engagement/social/drizzle/migrations/0000_fine_jamie_braddock.sql +24 -0
  732. package/dist/engagement/social/drizzle/migrations/0001_lame_eddie_brock.sql +10 -0
  733. package/dist/engagement/social/drizzle/migrations/0002_foamy_saracen.sql +1 -0
  734. package/dist/engagement/social/drizzle/migrations/0003_fuzzy_shadow_king.sql +4 -0
  735. package/dist/engagement/social/drizzle/migrations/0004_friendship-cancel-constraint.sql +2 -0
  736. package/dist/engagement/social/drizzle/migrations/meta/0000_snapshot.json +232 -0
  737. package/dist/engagement/social/drizzle/migrations/meta/0001_snapshot.json +129 -0
  738. package/dist/engagement/social/drizzle/migrations/meta/0002_snapshot.json +134 -0
  739. package/dist/engagement/social/drizzle/migrations/meta/0003_snapshot.json +145 -0
  740. package/dist/engagement/social/drizzle/migrations/meta/0004_snapshot.json +145 -0
  741. package/dist/engagement/social/drizzle/migrations/meta/_journal.json +41 -0
  742. package/dist/engagement/social/drizzle.config.d.ts +4 -0
  743. package/dist/engagement/social/drizzle.config.d.ts.map +1 -0
  744. package/dist/engagement/social/drizzle.config.js +21 -0
  745. package/dist/engagement/social/drizzle.config.js.map +1 -0
  746. package/dist/engagement/social/index.d.ts +3 -0
  747. package/dist/engagement/social/index.d.ts.map +1 -0
  748. package/dist/engagement/social/index.js +6 -0
  749. package/dist/engagement/social/index.js.map +1 -0
  750. package/dist/engagement/social/migrate.d.ts +5 -0
  751. package/dist/engagement/social/migrate.d.ts.map +1 -0
  752. package/dist/engagement/social/migrate.js +17 -0
  753. package/dist/engagement/social/migrate.js.map +1 -0
  754. package/dist/engagement/social/plugin.d.ts +139 -0
  755. package/dist/engagement/social/plugin.d.ts.map +1 -0
  756. package/dist/engagement/social/plugin.js +17 -0
  757. package/dist/engagement/social/plugin.js.map +1 -0
  758. package/dist/engagement/social/router/index.d.ts +98 -0
  759. package/dist/engagement/social/router/index.d.ts.map +1 -0
  760. package/dist/engagement/social/router/index.js +68 -0
  761. package/dist/engagement/social/router/index.js.map +1 -0
  762. package/dist/engagement/social/schema/index.d.ts +145 -0
  763. package/dist/engagement/social/schema/index.d.ts.map +1 -0
  764. package/dist/engagement/social/schema/index.js +24 -0
  765. package/dist/engagement/social/schema/index.js.map +1 -0
  766. package/dist/engagement/social/service/social.service.d.ts +55 -0
  767. package/dist/engagement/social/service/social.service.d.ts.map +1 -0
  768. package/dist/engagement/social/service/social.service.js +479 -0
  769. package/dist/engagement/social/service/social.service.js.map +1 -0
  770. package/dist/engagement/social-transfers/contract/index.d.ts +85 -0
  771. package/dist/engagement/social-transfers/contract/index.d.ts.map +1 -0
  772. package/dist/engagement/social-transfers/contract/index.js +21 -0
  773. package/dist/engagement/social-transfers/contract/index.js.map +1 -0
  774. package/dist/engagement/social-transfers/drizzle/migrations/0000_clammy_rattler.sql +46 -0
  775. package/dist/engagement/social-transfers/drizzle/migrations/0001_fearless_molecule_man.sql +5 -0
  776. package/dist/engagement/social-transfers/drizzle/migrations/meta/0000_snapshot.json +287 -0
  777. package/dist/engagement/social-transfers/drizzle/migrations/meta/0001_snapshot.json +287 -0
  778. package/dist/engagement/social-transfers/drizzle/migrations/meta/_journal.json +20 -0
  779. package/dist/engagement/social-transfers/drizzle.config.d.ts +4 -0
  780. package/dist/engagement/social-transfers/drizzle.config.d.ts.map +1 -0
  781. package/dist/engagement/social-transfers/drizzle.config.js +21 -0
  782. package/dist/engagement/social-transfers/drizzle.config.js.map +1 -0
  783. package/dist/engagement/social-transfers/index.d.ts +3 -0
  784. package/dist/engagement/social-transfers/index.d.ts.map +1 -0
  785. package/dist/engagement/social-transfers/index.js +6 -0
  786. package/dist/engagement/social-transfers/index.js.map +1 -0
  787. package/dist/engagement/social-transfers/migrate.d.ts +5 -0
  788. package/dist/engagement/social-transfers/migrate.d.ts.map +1 -0
  789. package/dist/engagement/social-transfers/migrate.js +17 -0
  790. package/dist/engagement/social-transfers/migrate.js.map +1 -0
  791. package/dist/engagement/social-transfers/plugin.d.ts +139 -0
  792. package/dist/engagement/social-transfers/plugin.d.ts.map +1 -0
  793. package/dist/engagement/social-transfers/plugin.js +24 -0
  794. package/dist/engagement/social-transfers/plugin.js.map +1 -0
  795. package/dist/engagement/social-transfers/router/index.d.ts +77 -0
  796. package/dist/engagement/social-transfers/router/index.d.ts.map +1 -0
  797. package/dist/engagement/social-transfers/router/index.js +26 -0
  798. package/dist/engagement/social-transfers/router/index.js.map +1 -0
  799. package/dist/engagement/social-transfers/schema/index.d.ts +608 -0
  800. package/dist/engagement/social-transfers/schema/index.d.ts.map +1 -0
  801. package/dist/engagement/social-transfers/schema/index.js +61 -0
  802. package/dist/engagement/social-transfers/schema/index.js.map +1 -0
  803. package/dist/engagement/social-transfers/service/__tests__/rain-split.int.test.d.ts +2 -0
  804. package/dist/engagement/social-transfers/service/__tests__/rain-split.int.test.d.ts.map +1 -0
  805. package/dist/engagement/social-transfers/service/__tests__/rain-split.int.test.js +31 -0
  806. package/dist/engagement/social-transfers/service/__tests__/rain-split.int.test.js.map +1 -0
  807. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts +2 -0
  808. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts.map +1 -0
  809. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js +936 -0
  810. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js.map +1 -0
  811. package/dist/engagement/social-transfers/service/social-transfers.service.d.ts +81 -0
  812. package/dist/engagement/social-transfers/service/social-transfers.service.d.ts.map +1 -0
  813. package/dist/engagement/social-transfers/service/social-transfers.service.js +807 -0
  814. package/dist/engagement/social-transfers/service/social-transfers.service.js.map +1 -0
  815. package/dist/iam/__tests__/admin-player-activity.int.test.d.ts +2 -0
  816. package/dist/iam/__tests__/admin-player-activity.int.test.d.ts.map +1 -0
  817. package/dist/iam/__tests__/admin-player-activity.int.test.js +119 -0
  818. package/dist/iam/__tests__/admin-player-activity.int.test.js.map +1 -0
  819. package/dist/iam/__tests__/iam.service.int.test.d.ts +2 -0
  820. package/dist/iam/__tests__/iam.service.int.test.d.ts.map +1 -0
  821. package/dist/iam/__tests__/iam.service.int.test.js +573 -0
  822. package/dist/iam/__tests__/iam.service.int.test.js.map +1 -0
  823. package/dist/iam/adapters/admin-player-activity.d.ts +10 -0
  824. package/dist/iam/adapters/admin-player-activity.d.ts.map +1 -0
  825. package/dist/iam/adapters/admin-player-activity.js +106 -0
  826. package/dist/iam/adapters/admin-player-activity.js.map +1 -0
  827. package/dist/iam/adapters/admin-role-assignment-directory.d.ts +8 -0
  828. package/dist/iam/adapters/admin-role-assignment-directory.d.ts.map +1 -0
  829. package/dist/iam/adapters/admin-role-assignment-directory.js +23 -0
  830. package/dist/iam/adapters/admin-role-assignment-directory.js.map +1 -0
  831. package/dist/iam/contract/index.d.ts +58 -0
  832. package/dist/iam/contract/index.d.ts.map +1 -1
  833. package/dist/iam/contract/index.js +30 -4
  834. package/dist/iam/contract/index.js.map +1 -1
  835. package/dist/iam/plugin.d.ts +137 -1
  836. package/dist/iam/plugin.d.ts.map +1 -1
  837. package/dist/iam/plugin.js +13 -7
  838. package/dist/iam/plugin.js.map +1 -1
  839. package/dist/iam/router/index.d.ts +37 -0
  840. package/dist/iam/router/index.d.ts.map +1 -1
  841. package/dist/iam/router/index.js +7 -1
  842. package/dist/iam/router/index.js.map +1 -1
  843. package/dist/iam/seed/data/default-admin-roles.d.ts.map +1 -1
  844. package/dist/iam/seed/data/default-admin-roles.js +3 -0
  845. package/dist/iam/seed/data/default-admin-roles.js.map +1 -1
  846. package/dist/iam/seed/seed-default-roles.d.ts.map +1 -1
  847. package/dist/iam/seed/seed-default-roles.js +2 -1
  848. package/dist/iam/seed/seed-default-roles.js.map +1 -1
  849. package/dist/iam/service/iam.service.d.ts +40 -31
  850. package/dist/iam/service/iam.service.d.ts.map +1 -1
  851. package/dist/iam/service/iam.service.js +166 -43
  852. package/dist/iam/service/iam.service.js.map +1 -1
  853. package/dist/pam/identity/__tests__/admin-user-directory.int.test.d.ts +2 -0
  854. package/dist/pam/identity/__tests__/admin-user-directory.int.test.d.ts.map +1 -0
  855. package/dist/pam/identity/__tests__/admin-user-directory.int.test.js +217 -0
  856. package/dist/pam/identity/__tests__/admin-user-directory.int.test.js.map +1 -0
  857. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.d.ts +2 -0
  858. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.d.ts.map +1 -0
  859. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.js +194 -0
  860. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.js.map +1 -0
  861. package/dist/pam/identity/__tests__/identity.registration-gates.int.test.d.ts +2 -0
  862. package/dist/pam/identity/__tests__/identity.registration-gates.int.test.d.ts.map +1 -0
  863. package/dist/pam/identity/__tests__/identity.registration-gates.int.test.js +94 -0
  864. package/dist/pam/identity/__tests__/identity.registration-gates.int.test.js.map +1 -0
  865. package/dist/pam/identity/__tests__/identity.service.int.test.d.ts +2 -0
  866. package/dist/pam/identity/__tests__/identity.service.int.test.d.ts.map +1 -0
  867. package/dist/pam/identity/__tests__/identity.service.int.test.js +551 -0
  868. package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -0
  869. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.d.ts +2 -0
  870. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.d.ts.map +1 -0
  871. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.js +99 -0
  872. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.js.map +1 -0
  873. package/dist/pam/identity/__tests__/phone-login.service.int.test.d.ts +2 -0
  874. package/dist/pam/identity/__tests__/phone-login.service.int.test.d.ts.map +1 -0
  875. package/dist/pam/identity/__tests__/phone-login.service.int.test.js +371 -0
  876. package/dist/pam/identity/__tests__/phone-login.service.int.test.js.map +1 -0
  877. package/dist/pam/identity/__tests__/play-eligibility.test.d.ts +2 -0
  878. package/dist/pam/identity/__tests__/play-eligibility.test.d.ts.map +1 -0
  879. package/dist/pam/identity/__tests__/play-eligibility.test.js +30 -0
  880. package/dist/pam/identity/__tests__/play-eligibility.test.js.map +1 -0
  881. package/dist/pam/identity/__tests__/rg-guard.test.d.ts +2 -0
  882. package/dist/pam/identity/__tests__/rg-guard.test.d.ts.map +1 -0
  883. package/dist/pam/identity/__tests__/rg-guard.test.js +21 -0
  884. package/dist/pam/identity/__tests__/rg-guard.test.js.map +1 -0
  885. package/dist/pam/identity/__tests__/session.service.int.test.d.ts +2 -0
  886. package/dist/pam/identity/__tests__/session.service.int.test.d.ts.map +1 -0
  887. package/dist/pam/identity/__tests__/session.service.int.test.js +85 -0
  888. package/dist/pam/identity/__tests__/session.service.int.test.js.map +1 -0
  889. package/dist/pam/identity/__tests__/user-commands.int.test.d.ts +2 -0
  890. package/dist/pam/identity/__tests__/user-commands.int.test.d.ts.map +1 -0
  891. package/dist/pam/identity/__tests__/user-commands.int.test.js +39 -0
  892. package/dist/pam/identity/__tests__/user-commands.int.test.js.map +1 -0
  893. package/dist/pam/identity/__tests__/username-backfill.int.test.d.ts +2 -0
  894. package/dist/pam/identity/__tests__/username-backfill.int.test.d.ts.map +1 -0
  895. package/dist/pam/identity/__tests__/username-backfill.int.test.js +103 -0
  896. package/dist/pam/identity/__tests__/username-backfill.int.test.js.map +1 -0
  897. package/dist/pam/identity/adapters/__tests__/default-email-template-renderer.test.d.ts +2 -0
  898. package/dist/pam/identity/adapters/__tests__/default-email-template-renderer.test.d.ts.map +1 -0
  899. package/dist/pam/identity/adapters/__tests__/default-email-template-renderer.test.js +25 -0
  900. package/dist/pam/identity/adapters/__tests__/default-email-template-renderer.test.js.map +1 -0
  901. package/dist/pam/identity/adapters/default-email-template-renderer.d.ts +8 -0
  902. package/dist/pam/identity/adapters/default-email-template-renderer.d.ts.map +1 -0
  903. package/dist/pam/identity/adapters/default-email-template-renderer.js +7 -0
  904. package/dist/pam/identity/adapters/default-email-template-renderer.js.map +1 -0
  905. package/dist/pam/identity/adapters/identity-reader.service.d.ts +8 -4
  906. package/dist/pam/identity/adapters/identity-reader.service.d.ts.map +1 -1
  907. package/dist/pam/identity/adapters/identity-reader.service.js +53 -2
  908. package/dist/pam/identity/adapters/identity-reader.service.js.map +1 -1
  909. package/dist/pam/identity/adapters/mock/mock-sms-adapter.d.ts +8 -0
  910. package/dist/pam/identity/adapters/mock/mock-sms-adapter.d.ts.map +1 -0
  911. package/dist/pam/identity/adapters/mock/mock-sms-adapter.js +7 -0
  912. package/dist/pam/identity/adapters/mock/mock-sms-adapter.js.map +1 -0
  913. package/dist/pam/identity/admin-user-directory.d.ts +36 -8
  914. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  915. package/dist/pam/identity/admin-user-directory.js +103 -41
  916. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  917. package/dist/pam/identity/contract/index.d.ts +128 -12
  918. package/dist/pam/identity/contract/index.d.ts.map +1 -1
  919. package/dist/pam/identity/contract/index.js +54 -6
  920. package/dist/pam/identity/contract/index.js.map +1 -1
  921. package/dist/pam/identity/drizzle/migrations/0001_rainy_peter_quill.sql +18 -0
  922. package/dist/pam/identity/drizzle/migrations/0002_outstanding_patriot.sql +1 -0
  923. package/dist/pam/identity/drizzle/migrations/0003_open_shotgun.sql +1 -0
  924. package/dist/pam/identity/drizzle/migrations/0004_round_giant_girl.sql +1 -0
  925. package/dist/pam/identity/drizzle/migrations/0005_daily_black_tom.sql +1 -0
  926. package/dist/pam/identity/drizzle/migrations/0006_brave_sabra.sql +1 -0
  927. package/dist/pam/identity/drizzle/migrations/0007_fuzzy_barracuda.sql +44 -0
  928. package/dist/pam/identity/drizzle/migrations/meta/0001_snapshot.json +684 -0
  929. package/dist/pam/identity/drizzle/migrations/meta/0002_snapshot.json +690 -0
  930. package/dist/pam/identity/drizzle/migrations/meta/0003_snapshot.json +695 -0
  931. package/dist/pam/identity/drizzle/migrations/meta/0004_snapshot.json +680 -0
  932. package/dist/pam/identity/drizzle/migrations/meta/0005_snapshot.json +695 -0
  933. package/dist/pam/identity/drizzle/migrations/meta/0006_snapshot.json +701 -0
  934. package/dist/pam/identity/drizzle/migrations/meta/0007_snapshot.json +737 -0
  935. package/dist/pam/identity/drizzle/migrations/meta/_journal.json +49 -0
  936. package/dist/pam/identity/plugin.d.ts +136 -1
  937. package/dist/pam/identity/plugin.d.ts.map +1 -1
  938. package/dist/pam/identity/plugin.js +43 -7
  939. package/dist/pam/identity/plugin.js.map +1 -1
  940. package/dist/pam/identity/react/account.d.ts +20 -8
  941. package/dist/pam/identity/react/account.d.ts.map +1 -1
  942. package/dist/pam/identity/react/account.js +13 -1
  943. package/dist/pam/identity/react/account.js.map +1 -1
  944. package/dist/pam/identity/react/auth.d.ts +17 -13
  945. package/dist/pam/identity/react/auth.d.ts.map +1 -1
  946. package/dist/pam/identity/router/index.d.ts +117 -13
  947. package/dist/pam/identity/router/index.d.ts.map +1 -1
  948. package/dist/pam/identity/router/index.js +65 -9
  949. package/dist/pam/identity/router/index.js.map +1 -1
  950. package/dist/pam/identity/schema/index.d.ts +246 -0
  951. package/dist/pam/identity/schema/index.d.ts.map +1 -1
  952. package/dist/pam/identity/schema/index.js +32 -2
  953. package/dist/pam/identity/schema/index.js.map +1 -1
  954. package/dist/pam/identity/service/identity.service.d.ts +80 -30
  955. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  956. package/dist/pam/identity/service/identity.service.js +621 -105
  957. package/dist/pam/identity/service/identity.service.js.map +1 -1
  958. package/dist/pam/identity/service/lockout-policy.service.d.ts +30 -0
  959. package/dist/pam/identity/service/lockout-policy.service.d.ts.map +1 -0
  960. package/dist/pam/identity/service/lockout-policy.service.js +40 -0
  961. package/dist/pam/identity/service/lockout-policy.service.js.map +1 -0
  962. package/dist/pam/identity/service/login-enforcement.service.d.ts +3 -3
  963. package/dist/pam/identity/service/login-enforcement.service.d.ts.map +1 -1
  964. package/dist/pam/identity/service/login-enforcement.service.js.map +1 -1
  965. package/dist/pam/identity/service/phone-login.service.d.ts +62 -0
  966. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -0
  967. package/dist/pam/identity/service/phone-login.service.js +401 -0
  968. package/dist/pam/identity/service/phone-login.service.js.map +1 -0
  969. package/dist/pam/identity/service/play-eligibility.service.d.ts +8 -0
  970. package/dist/pam/identity/service/play-eligibility.service.d.ts.map +1 -0
  971. package/dist/pam/identity/service/play-eligibility.service.js +21 -0
  972. package/dist/pam/identity/service/play-eligibility.service.js.map +1 -0
  973. package/dist/pam/identity/service/rg-guard.service.d.ts +5 -0
  974. package/dist/pam/identity/service/rg-guard.service.d.ts.map +1 -0
  975. package/dist/pam/identity/service/rg-guard.service.js +4 -0
  976. package/dist/pam/identity/service/rg-guard.service.js.map +1 -0
  977. package/dist/pam/identity/service/session.service.d.ts +15 -4
  978. package/dist/pam/identity/service/session.service.d.ts.map +1 -1
  979. package/dist/pam/identity/service/session.service.js +38 -15
  980. package/dist/pam/identity/service/session.service.js.map +1 -1
  981. package/dist/pam/identity/service/user-commands.service.d.ts +11 -0
  982. package/dist/pam/identity/service/user-commands.service.d.ts.map +1 -0
  983. package/dist/pam/identity/service/user-commands.service.js +32 -0
  984. package/dist/pam/identity/service/user-commands.service.js.map +1 -0
  985. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.d.ts +2 -0
  986. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.d.ts.map +1 -0
  987. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.js +89 -0
  988. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.js.map +1 -0
  989. package/dist/pam/player-management/__tests__/player.router.int.test.d.ts +2 -0
  990. package/dist/pam/player-management/__tests__/player.router.int.test.d.ts.map +1 -0
  991. package/dist/pam/player-management/__tests__/player.router.int.test.js +107 -0
  992. package/dist/pam/player-management/__tests__/player.router.int.test.js.map +1 -0
  993. package/dist/pam/player-management/__tests__/player.service.int.test.d.ts +2 -0
  994. package/dist/pam/player-management/__tests__/player.service.int.test.d.ts.map +1 -0
  995. package/dist/pam/player-management/__tests__/player.service.int.test.js +429 -0
  996. package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -0
  997. package/dist/pam/player-management/contract/index.d.ts +105 -25
  998. package/dist/pam/player-management/contract/index.d.ts.map +1 -1
  999. package/dist/pam/player-management/contract/index.js +35 -5
  1000. package/dist/pam/player-management/contract/index.js.map +1 -1
  1001. package/dist/pam/player-management/plugin.d.ts +137 -1
  1002. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  1003. package/dist/pam/player-management/plugin.js +10 -7
  1004. package/dist/pam/player-management/plugin.js.map +1 -1
  1005. package/dist/pam/player-management/router/index.d.ts +79 -23
  1006. package/dist/pam/player-management/router/index.d.ts.map +1 -1
  1007. package/dist/pam/player-management/router/index.js +54 -17
  1008. package/dist/pam/player-management/router/index.js.map +1 -1
  1009. package/dist/pam/player-management/service/kyc-status-writer.d.ts +3 -2
  1010. package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
  1011. package/dist/pam/player-management/service/kyc-status-writer.js +26 -10
  1012. package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
  1013. package/dist/pam/player-management/service/player.service.d.ts +45 -34
  1014. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  1015. package/dist/pam/player-management/service/player.service.js +139 -50
  1016. package/dist/pam/player-management/service/player.service.js.map +1 -1
  1017. package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts +2 -0
  1018. package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts.map +1 -0
  1019. package/dist/pam/player-note/__tests__/player-note.router.int.test.js +52 -0
  1020. package/dist/pam/player-note/__tests__/player-note.router.int.test.js.map +1 -0
  1021. package/dist/pam/player-note/contract/index.d.ts +14 -0
  1022. package/dist/pam/player-note/contract/index.d.ts.map +1 -1
  1023. package/dist/pam/player-note/contract/index.js +8 -2
  1024. package/dist/pam/player-note/contract/index.js.map +1 -1
  1025. package/dist/pam/player-note/plugin.d.ts +137 -1
  1026. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  1027. package/dist/pam/player-note/plugin.js +6 -4
  1028. package/dist/pam/player-note/plugin.js.map +1 -1
  1029. package/dist/pam/player-note/router/index.d.ts +10 -1
  1030. package/dist/pam/player-note/router/index.d.ts.map +1 -1
  1031. package/dist/pam/player-note/router/index.js +20 -3
  1032. package/dist/pam/player-note/router/index.js.map +1 -1
  1033. package/dist/pam/player-note/schema/index.d.ts +4 -4
  1034. package/dist/pam/player-note/schema/index.js +6 -6
  1035. package/dist/pam/player-note/schema/index.js.map +1 -1
  1036. package/dist/pam/player-note/service/player-note.service.d.ts +13 -3
  1037. package/dist/pam/player-note/service/player-note.service.d.ts.map +1 -1
  1038. package/dist/pam/player-note/service/player-note.service.js +6 -4
  1039. package/dist/pam/player-note/service/player-note.service.js.map +1 -1
  1040. package/dist/pam/profile/__tests__/profile.service.int.test.d.ts +2 -0
  1041. package/dist/pam/profile/__tests__/profile.service.int.test.d.ts.map +1 -0
  1042. package/dist/pam/profile/__tests__/profile.service.int.test.js +88 -0
  1043. package/dist/pam/profile/__tests__/profile.service.int.test.js.map +1 -0
  1044. package/dist/pam/profile/contract/index.d.ts +8 -7
  1045. package/dist/pam/profile/contract/index.d.ts.map +1 -1
  1046. package/dist/pam/profile/drizzle/migrations/0001_powerful_tiger_shark.sql +1 -0
  1047. package/dist/pam/profile/drizzle/migrations/0002_sour_alex_wilder.sql +7 -0
  1048. package/dist/pam/profile/drizzle/migrations/meta/0001_snapshot.json +191 -0
  1049. package/dist/pam/profile/drizzle/migrations/meta/0002_snapshot.json +200 -0
  1050. package/dist/pam/profile/drizzle/migrations/meta/_journal.json +14 -0
  1051. package/dist/pam/profile/migrate.d.ts.map +1 -1
  1052. package/dist/pam/profile/migrate.js +3 -1
  1053. package/dist/pam/profile/migrate.js.map +1 -1
  1054. package/dist/pam/profile/plugin.d.ts +136 -1
  1055. package/dist/pam/profile/plugin.d.ts.map +1 -1
  1056. package/dist/pam/profile/plugin.js +7 -4
  1057. package/dist/pam/profile/plugin.js.map +1 -1
  1058. package/dist/pam/profile/react/profile.d.ts +10 -12
  1059. package/dist/pam/profile/react/profile.d.ts.map +1 -1
  1060. package/dist/pam/profile/react/profile.js.map +1 -1
  1061. package/dist/pam/profile/router/index.d.ts +8 -7
  1062. package/dist/pam/profile/router/index.d.ts.map +1 -1
  1063. package/dist/pam/profile/schema/index.d.ts +88 -20
  1064. package/dist/pam/profile/schema/index.d.ts.map +1 -1
  1065. package/dist/pam/profile/schema/index.js +6 -9
  1066. package/dist/pam/profile/schema/index.js.map +1 -1
  1067. package/dist/pam/profile/service/profile.service.d.ts +24 -10
  1068. package/dist/pam/profile/service/profile.service.d.ts.map +1 -1
  1069. package/dist/pam/profile/service/profile.service.js +28 -17
  1070. package/dist/pam/profile/service/profile.service.js.map +1 -1
  1071. package/dist/pam/react.d.ts +1 -1
  1072. package/dist/pam/react.d.ts.map +1 -1
  1073. package/dist/pam/react.js +1 -1
  1074. package/dist/pam/react.js.map +1 -1
  1075. package/dist/pam/shared/__tests__/shared-mappers.test.d.ts +2 -0
  1076. package/dist/pam/shared/__tests__/shared-mappers.test.d.ts.map +1 -0
  1077. package/dist/pam/shared/__tests__/shared-mappers.test.js +55 -0
  1078. package/dist/pam/shared/__tests__/shared-mappers.test.js.map +1 -0
  1079. package/dist/pam/shared/headers-mapper.d.ts.map +1 -1
  1080. package/dist/pam/shared/headers-mapper.js +2 -1
  1081. package/dist/pam/shared/headers-mapper.js.map +1 -1
  1082. package/dist/pam/shared/player-mapper.d.ts +22 -3
  1083. package/dist/pam/shared/player-mapper.d.ts.map +1 -1
  1084. package/dist/pam/shared/player-mapper.js +8 -7
  1085. package/dist/pam/shared/player-mapper.js.map +1 -1
  1086. package/dist/pam/tag/__tests__/get-active-tag-keys.int.test.d.ts +2 -0
  1087. package/dist/pam/tag/__tests__/get-active-tag-keys.int.test.d.ts.map +1 -0
  1088. package/dist/pam/tag/__tests__/get-active-tag-keys.int.test.js +77 -0
  1089. package/dist/pam/tag/__tests__/get-active-tag-keys.int.test.js.map +1 -0
  1090. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.d.ts +2 -0
  1091. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.d.ts.map +1 -0
  1092. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.js +980 -0
  1093. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.js.map +1 -0
  1094. package/dist/pam/tag/__tests__/tag-mappers.test.js +31 -6
  1095. package/dist/pam/tag/__tests__/tag-mappers.test.js.map +1 -1
  1096. package/dist/pam/tag/__tests__/tag-rule.service.int.test.d.ts +2 -0
  1097. package/dist/pam/tag/__tests__/tag-rule.service.int.test.d.ts.map +1 -0
  1098. package/dist/pam/tag/__tests__/tag-rule.service.int.test.js +145 -0
  1099. package/dist/pam/tag/__tests__/tag-rule.service.int.test.js.map +1 -0
  1100. package/dist/pam/tag/__tests__/tag.router.int.test.d.ts +2 -0
  1101. package/dist/pam/tag/__tests__/tag.router.int.test.d.ts.map +1 -0
  1102. package/dist/pam/tag/__tests__/tag.router.int.test.js +222 -0
  1103. package/dist/pam/tag/__tests__/tag.router.int.test.js.map +1 -0
  1104. package/dist/pam/tag/__tests__/tag.service.int.test.d.ts +2 -0
  1105. package/dist/pam/tag/__tests__/tag.service.int.test.d.ts.map +1 -0
  1106. package/dist/pam/tag/__tests__/tag.service.int.test.js +571 -0
  1107. package/dist/pam/tag/__tests__/tag.service.int.test.js.map +1 -0
  1108. package/dist/pam/tag/contract/index.d.ts +142 -4
  1109. package/dist/pam/tag/contract/index.d.ts.map +1 -1
  1110. package/dist/pam/tag/contract/index.js +12 -2
  1111. package/dist/pam/tag/contract/index.js.map +1 -1
  1112. package/dist/pam/tag/contract/player-tag-assign-metadata.d.ts +37 -0
  1113. package/dist/pam/tag/contract/player-tag-assign-metadata.d.ts.map +1 -0
  1114. package/dist/pam/tag/contract/player-tag-assign-metadata.js +20 -0
  1115. package/dist/pam/tag/contract/player-tag-assign-metadata.js.map +1 -0
  1116. package/dist/pam/tag/drizzle/migrations/0001_neat_iron_monger.sql +2 -0
  1117. package/dist/pam/tag/drizzle/migrations/0002_silent_skaar.sql +4 -0
  1118. package/dist/pam/tag/drizzle/migrations/0003_overconfident_guardian.sql +3 -0
  1119. package/dist/pam/tag/drizzle/migrations/0004_curvy_wither.sql +2 -0
  1120. package/dist/pam/tag/drizzle/migrations/meta/0001_snapshot.json +295 -0
  1121. package/dist/pam/tag/drizzle/migrations/meta/0002_snapshot.json +335 -0
  1122. package/dist/pam/tag/drizzle/migrations/meta/0003_snapshot.json +343 -0
  1123. package/dist/pam/tag/drizzle/migrations/meta/0004_snapshot.json +345 -0
  1124. package/dist/pam/tag/drizzle/migrations/meta/_journal.json +28 -0
  1125. package/dist/pam/tag/migrate.d.ts.map +1 -1
  1126. package/dist/pam/tag/migrate.js +34 -0
  1127. package/dist/pam/tag/migrate.js.map +1 -1
  1128. package/dist/pam/tag/plugin.d.ts +137 -1
  1129. package/dist/pam/tag/plugin.d.ts.map +1 -1
  1130. package/dist/pam/tag/plugin.js +46 -19
  1131. package/dist/pam/tag/plugin.js.map +1 -1
  1132. package/dist/pam/tag/router/index.d.ts +117 -4
  1133. package/dist/pam/tag/router/index.d.ts.map +1 -1
  1134. package/dist/pam/tag/router/index.js +38 -9
  1135. package/dist/pam/tag/router/index.js.map +1 -1
  1136. package/dist/pam/tag/schema/index.d.ts +58 -19
  1137. package/dist/pam/tag/schema/index.d.ts.map +1 -1
  1138. package/dist/pam/tag/schema/index.js +32 -21
  1139. package/dist/pam/tag/schema/index.js.map +1 -1
  1140. package/dist/pam/tag/seed/data/default-tag-rules.d.ts.map +1 -1
  1141. package/dist/pam/tag/seed/data/default-tag-rules.js +48 -6
  1142. package/dist/pam/tag/seed/data/default-tag-rules.js.map +1 -1
  1143. package/dist/pam/tag/seed/data/default-tags.d.ts.map +1 -1
  1144. package/dist/pam/tag/seed/data/default-tags.js +6 -0
  1145. package/dist/pam/tag/seed/data/default-tags.js.map +1 -1
  1146. package/dist/pam/tag/seed/seed-default-tag-rules.d.ts.map +1 -1
  1147. package/dist/pam/tag/seed/seed-default-tag-rules.js +5 -3
  1148. package/dist/pam/tag/seed/seed-default-tag-rules.js.map +1 -1
  1149. package/dist/pam/tag/service/tag-evaluation.service.d.ts +141 -17
  1150. package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
  1151. package/dist/pam/tag/service/tag-evaluation.service.js +501 -62
  1152. package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
  1153. package/dist/pam/tag/service/tag-mappers.d.ts +8 -2
  1154. package/dist/pam/tag/service/tag-mappers.d.ts.map +1 -1
  1155. package/dist/pam/tag/service/tag-mappers.js +4 -8
  1156. package/dist/pam/tag/service/tag-mappers.js.map +1 -1
  1157. package/dist/pam/tag/service/tag-rule.service.d.ts +34 -4
  1158. package/dist/pam/tag/service/tag-rule.service.d.ts.map +1 -1
  1159. package/dist/pam/tag/service/tag-rule.service.js +17 -17
  1160. package/dist/pam/tag/service/tag-rule.service.js.map +1 -1
  1161. package/dist/pam/tag/service/tag.service.d.ts +188 -11
  1162. package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
  1163. package/dist/pam/tag/service/tag.service.js +302 -40
  1164. package/dist/pam/tag/service/tag.service.js.map +1 -1
  1165. package/dist/react/context/api-client.d.ts.map +1 -1
  1166. package/dist/react/context/api-client.js +14 -7
  1167. package/dist/react/context/api-client.js.map +1 -1
  1168. package/dist/react/context/realtime-client.d.ts +1 -0
  1169. package/dist/react/context/realtime-client.d.ts.map +1 -1
  1170. package/dist/react/context/realtime-client.js.map +1 -1
  1171. package/dist/react/hooks/__tests__/use-event-stream.test.d.ts +2 -0
  1172. package/dist/react/hooks/__tests__/use-event-stream.test.d.ts.map +1 -0
  1173. package/dist/react/hooks/__tests__/use-event-stream.test.js +153 -0
  1174. package/dist/react/hooks/__tests__/use-event-stream.test.js.map +1 -0
  1175. package/dist/react/hooks/use-event-stream.d.ts +3 -3
  1176. package/dist/react/hooks/use-event-stream.d.ts.map +1 -1
  1177. package/dist/react/hooks/use-event-stream.js +63 -28
  1178. package/dist/react/hooks/use-event-stream.js.map +1 -1
  1179. package/dist/react/hooks/use-paginated-list.js +3 -3
  1180. package/dist/react/hooks/use-paginated-list.js.map +1 -1
  1181. package/dist/server/auth/__tests__/admin-guard.int.test.d.ts +2 -0
  1182. package/dist/server/auth/__tests__/admin-guard.int.test.d.ts.map +1 -0
  1183. package/dist/server/auth/__tests__/admin-guard.int.test.js +123 -0
  1184. package/dist/server/auth/__tests__/admin-guard.int.test.js.map +1 -0
  1185. package/dist/server/auth/__tests__/auth.test.d.ts +2 -0
  1186. package/dist/server/auth/__tests__/auth.test.d.ts.map +1 -0
  1187. package/dist/server/auth/__tests__/auth.test.js +96 -0
  1188. package/dist/server/auth/__tests__/auth.test.js.map +1 -0
  1189. package/dist/server/auth/__tests__/permission-levels.test.d.ts +2 -0
  1190. package/dist/server/auth/__tests__/permission-levels.test.d.ts.map +1 -0
  1191. package/dist/server/auth/__tests__/permission-levels.test.js +89 -0
  1192. package/dist/server/auth/__tests__/permission-levels.test.js.map +1 -0
  1193. package/dist/server/auth/__tests__/session-resolver.int.test.d.ts +2 -0
  1194. package/dist/server/auth/__tests__/session-resolver.int.test.d.ts.map +1 -0
  1195. package/dist/server/auth/__tests__/session-resolver.int.test.js +59 -0
  1196. package/dist/server/auth/__tests__/session-resolver.int.test.js.map +1 -0
  1197. package/dist/server/auth/__tests__/sign-session-cookie.test.d.ts +2 -0
  1198. package/dist/server/auth/__tests__/sign-session-cookie.test.d.ts.map +1 -0
  1199. package/dist/server/auth/__tests__/sign-session-cookie.test.js +59 -0
  1200. package/dist/server/auth/__tests__/sign-session-cookie.test.js.map +1 -0
  1201. package/dist/server/auth/admin-guard.d.ts +23 -10
  1202. package/dist/server/auth/admin-guard.d.ts.map +1 -1
  1203. package/dist/server/auth/admin-guard.js +90 -44
  1204. package/dist/server/auth/admin-guard.js.map +1 -1
  1205. package/dist/server/auth/auth.d.ts +27 -0
  1206. package/dist/server/auth/auth.d.ts.map +1 -1
  1207. package/dist/server/auth/auth.js +70 -16
  1208. package/dist/server/auth/auth.js.map +1 -1
  1209. package/dist/server/auth/index.d.ts +2 -0
  1210. package/dist/server/auth/index.d.ts.map +1 -1
  1211. package/dist/server/auth/index.js +1 -0
  1212. package/dist/server/auth/index.js.map +1 -1
  1213. package/dist/server/auth/permission-levels.d.ts.map +1 -1
  1214. package/dist/server/auth/permission-levels.js +12 -6
  1215. package/dist/server/auth/permission-levels.js.map +1 -1
  1216. package/dist/server/auth/permissions.d.ts +108 -0
  1217. package/dist/server/auth/permissions.d.ts.map +1 -1
  1218. package/dist/server/auth/permissions.js +18 -0
  1219. package/dist/server/auth/permissions.js.map +1 -1
  1220. package/dist/server/auth/session-resolver.d.ts +4 -0
  1221. package/dist/server/auth/session-resolver.d.ts.map +1 -1
  1222. package/dist/server/auth/session-resolver.js +9 -2
  1223. package/dist/server/auth/session-resolver.js.map +1 -1
  1224. package/dist/server/auth/sign-session-cookie.d.ts +18 -0
  1225. package/dist/server/auth/sign-session-cookie.d.ts.map +1 -0
  1226. package/dist/server/auth/sign-session-cookie.js +15 -0
  1227. package/dist/server/auth/sign-session-cookie.js.map +1 -0
  1228. package/dist/server/db/__tests__/migrate.test.d.ts +2 -0
  1229. package/dist/server/db/__tests__/migrate.test.d.ts.map +1 -0
  1230. package/dist/server/db/__tests__/migrate.test.js +127 -0
  1231. package/dist/server/db/__tests__/migrate.test.js.map +1 -0
  1232. package/dist/server/db/__tests__/query-helpers.test.js +120 -1
  1233. package/dist/server/db/__tests__/query-helpers.test.js.map +1 -1
  1234. package/dist/server/db/drizzle.d.ts.map +1 -1
  1235. package/dist/server/db/drizzle.js +2 -1
  1236. package/dist/server/db/drizzle.js.map +1 -1
  1237. package/dist/server/db/drizzle.service.d.ts.map +1 -1
  1238. package/dist/server/db/drizzle.service.js +10 -1
  1239. package/dist/server/db/drizzle.service.js.map +1 -1
  1240. package/dist/server/db/index.d.ts +1 -1
  1241. package/dist/server/db/index.d.ts.map +1 -1
  1242. package/dist/server/db/index.js +1 -1
  1243. package/dist/server/db/index.js.map +1 -1
  1244. package/dist/server/db/migrate.d.ts +25 -0
  1245. package/dist/server/db/migrate.d.ts.map +1 -1
  1246. package/dist/server/db/migrate.js +75 -13
  1247. package/dist/server/db/migrate.js.map +1 -1
  1248. package/dist/server/db/outbox/__tests__/relay.int.test.d.ts +2 -0
  1249. package/dist/server/db/outbox/__tests__/relay.int.test.d.ts.map +1 -0
  1250. package/dist/server/db/outbox/__tests__/relay.int.test.js +117 -0
  1251. package/dist/server/db/outbox/__tests__/relay.int.test.js.map +1 -0
  1252. package/dist/server/db/outbox/relay.d.ts +15 -0
  1253. package/dist/server/db/outbox/relay.d.ts.map +1 -1
  1254. package/dist/server/db/outbox/relay.js +21 -14
  1255. package/dist/server/db/outbox/relay.js.map +1 -1
  1256. package/dist/server/db/query-helpers.d.ts +7 -0
  1257. package/dist/server/db/query-helpers.d.ts.map +1 -1
  1258. package/dist/server/db/query-helpers.js +71 -1
  1259. package/dist/server/db/query-helpers.js.map +1 -1
  1260. package/dist/server/kernel/__tests__/bullmq-job-queue.int.test.d.ts +2 -0
  1261. package/dist/server/kernel/__tests__/bullmq-job-queue.int.test.d.ts.map +1 -0
  1262. package/dist/server/kernel/__tests__/bullmq-job-queue.int.test.js +240 -0
  1263. package/dist/server/kernel/__tests__/bullmq-job-queue.int.test.js.map +1 -0
  1264. package/dist/server/kernel/__tests__/cache.int.test.d.ts +2 -0
  1265. package/dist/server/kernel/__tests__/cache.int.test.d.ts.map +1 -0
  1266. package/dist/server/kernel/__tests__/cache.int.test.js +52 -0
  1267. package/dist/server/kernel/__tests__/cache.int.test.js.map +1 -0
  1268. package/dist/server/kernel/__tests__/domain-error.test.d.ts +2 -0
  1269. package/dist/server/kernel/__tests__/domain-error.test.d.ts.map +1 -0
  1270. package/dist/server/kernel/__tests__/domain-error.test.js +35 -0
  1271. package/dist/server/kernel/__tests__/domain-error.test.js.map +1 -0
  1272. package/dist/server/kernel/__tests__/error-reporter.test.d.ts +2 -0
  1273. package/dist/server/kernel/__tests__/error-reporter.test.d.ts.map +1 -0
  1274. package/dist/server/kernel/__tests__/error-reporter.test.js +52 -0
  1275. package/dist/server/kernel/__tests__/error-reporter.test.js.map +1 -0
  1276. package/dist/server/kernel/__tests__/event-bus.int.test.d.ts +2 -0
  1277. package/dist/server/kernel/__tests__/event-bus.int.test.d.ts.map +1 -0
  1278. package/dist/server/kernel/__tests__/event-bus.int.test.js +173 -0
  1279. package/dist/server/kernel/__tests__/event-bus.int.test.js.map +1 -0
  1280. package/dist/server/kernel/__tests__/helpers.test.js +26 -0
  1281. package/dist/server/kernel/__tests__/helpers.test.js.map +1 -1
  1282. package/dist/server/kernel/__tests__/logger.test.d.ts +2 -0
  1283. package/dist/server/kernel/__tests__/logger.test.d.ts.map +1 -0
  1284. package/dist/server/kernel/__tests__/logger.test.js +44 -0
  1285. package/dist/server/kernel/__tests__/logger.test.js.map +1 -0
  1286. package/dist/server/kernel/__tests__/orpc-error-map.test.d.ts +2 -0
  1287. package/dist/server/kernel/__tests__/orpc-error-map.test.d.ts.map +1 -0
  1288. package/dist/server/kernel/__tests__/orpc-error-map.test.js +54 -0
  1289. package/dist/server/kernel/__tests__/orpc-error-map.test.js.map +1 -0
  1290. package/dist/server/kernel/__tests__/platform-config-loader.test.d.ts +2 -0
  1291. package/dist/server/kernel/__tests__/platform-config-loader.test.d.ts.map +1 -0
  1292. package/dist/server/kernel/__tests__/platform-config-loader.test.js +112 -0
  1293. package/dist/server/kernel/__tests__/platform-config-loader.test.js.map +1 -0
  1294. package/dist/server/kernel/__tests__/rate-limiter.int.test.d.ts +2 -0
  1295. package/dist/server/kernel/__tests__/rate-limiter.int.test.d.ts.map +1 -0
  1296. package/dist/server/kernel/__tests__/rate-limiter.int.test.js +41 -0
  1297. package/dist/server/kernel/__tests__/rate-limiter.int.test.js.map +1 -0
  1298. package/dist/server/kernel/__tests__/realtime-transport.test.js +24 -4
  1299. package/dist/server/kernel/__tests__/realtime-transport.test.js.map +1 -1
  1300. package/dist/server/kernel/__tests__/redis-cache.int.test.d.ts +2 -0
  1301. package/dist/server/kernel/__tests__/redis-cache.int.test.d.ts.map +1 -0
  1302. package/dist/server/kernel/__tests__/redis-cache.int.test.js +49 -0
  1303. package/dist/server/kernel/__tests__/redis-cache.int.test.js.map +1 -0
  1304. package/dist/server/kernel/__tests__/redis-rate-limiter.int.test.d.ts +2 -0
  1305. package/dist/server/kernel/__tests__/redis-rate-limiter.int.test.d.ts.map +1 -0
  1306. package/dist/server/kernel/__tests__/redis-rate-limiter.int.test.js +61 -0
  1307. package/dist/server/kernel/__tests__/redis-rate-limiter.int.test.js.map +1 -0
  1308. package/dist/server/kernel/__tests__/redis-streams-broker.int.test.d.ts +2 -0
  1309. package/dist/server/kernel/__tests__/redis-streams-broker.int.test.d.ts.map +1 -0
  1310. package/dist/server/kernel/__tests__/redis-streams-broker.int.test.js +172 -0
  1311. package/dist/server/kernel/__tests__/redis-streams-broker.int.test.js.map +1 -0
  1312. package/dist/server/kernel/__tests__/request-context.test.d.ts +2 -0
  1313. package/dist/server/kernel/__tests__/request-context.test.d.ts.map +1 -0
  1314. package/dist/server/kernel/__tests__/request-context.test.js +64 -0
  1315. package/dist/server/kernel/__tests__/request-context.test.js.map +1 -0
  1316. package/dist/server/kernel/__tests__/router-utils.test.d.ts +2 -0
  1317. package/dist/server/kernel/__tests__/router-utils.test.d.ts.map +1 -0
  1318. package/dist/server/kernel/__tests__/router-utils.test.js +87 -0
  1319. package/dist/server/kernel/__tests__/router-utils.test.js.map +1 -0
  1320. package/dist/server/kernel/bullmq-job-queue.d.ts +12 -0
  1321. package/dist/server/kernel/bullmq-job-queue.d.ts.map +1 -1
  1322. package/dist/server/kernel/bullmq-job-queue.js +48 -8
  1323. package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
  1324. package/dist/server/kernel/cache.d.ts +0 -12
  1325. package/dist/server/kernel/cache.d.ts.map +1 -1
  1326. package/dist/server/kernel/cache.js +6 -54
  1327. package/dist/server/kernel/cache.js.map +1 -1
  1328. package/dist/server/kernel/container.d.ts +17 -6
  1329. package/dist/server/kernel/container.d.ts.map +1 -1
  1330. package/dist/server/kernel/container.js +15 -1
  1331. package/dist/server/kernel/container.js.map +1 -1
  1332. package/dist/server/kernel/error-reporter.d.ts +5 -0
  1333. package/dist/server/kernel/error-reporter.d.ts.map +1 -0
  1334. package/dist/server/kernel/error-reporter.js +20 -0
  1335. package/dist/server/kernel/error-reporter.js.map +1 -0
  1336. package/dist/server/kernel/event-bus.d.ts +2 -9
  1337. package/dist/server/kernel/event-bus.d.ts.map +1 -1
  1338. package/dist/server/kernel/event-bus.js +11 -26
  1339. package/dist/server/kernel/event-bus.js.map +1 -1
  1340. package/dist/server/kernel/event-stream.d.ts.map +1 -1
  1341. package/dist/server/kernel/event-stream.js +21 -5
  1342. package/dist/server/kernel/event-stream.js.map +1 -1
  1343. package/dist/server/kernel/index.d.ts +9 -7
  1344. package/dist/server/kernel/index.d.ts.map +1 -1
  1345. package/dist/server/kernel/index.js +7 -6
  1346. package/dist/server/kernel/index.js.map +1 -1
  1347. package/dist/server/kernel/logger.d.ts +7 -0
  1348. package/dist/server/kernel/logger.d.ts.map +1 -1
  1349. package/dist/server/kernel/logger.js +36 -2
  1350. package/dist/server/kernel/logger.js.map +1 -1
  1351. package/dist/server/kernel/orpc-error-map.d.ts.map +1 -1
  1352. package/dist/server/kernel/orpc-error-map.js +4 -1
  1353. package/dist/server/kernel/orpc-error-map.js.map +1 -1
  1354. package/dist/server/kernel/ownership.d.ts.map +1 -1
  1355. package/dist/server/kernel/ownership.js +2 -1
  1356. package/dist/server/kernel/ownership.js.map +1 -1
  1357. package/dist/server/kernel/platform-config-loader.d.ts.map +1 -1
  1358. package/dist/server/kernel/platform-config-loader.js +34 -16
  1359. package/dist/server/kernel/platform-config-loader.js.map +1 -1
  1360. package/dist/server/kernel/rate-limiter.d.ts +2 -10
  1361. package/dist/server/kernel/rate-limiter.d.ts.map +1 -1
  1362. package/dist/server/kernel/rate-limiter.js +4 -35
  1363. package/dist/server/kernel/rate-limiter.js.map +1 -1
  1364. package/dist/server/kernel/realtime-authorizer.d.ts +2 -4
  1365. package/dist/server/kernel/realtime-authorizer.d.ts.map +1 -1
  1366. package/dist/server/kernel/realtime-authorizer.js +3 -2
  1367. package/dist/server/kernel/realtime-authorizer.js.map +1 -1
  1368. package/dist/server/kernel/realtime-transport.d.ts +7 -2
  1369. package/dist/server/kernel/realtime-transport.d.ts.map +1 -1
  1370. package/dist/server/kernel/realtime-transport.js +63 -22
  1371. package/dist/server/kernel/realtime-transport.js.map +1 -1
  1372. package/dist/server/kernel/redis-cache.d.ts +3 -0
  1373. package/dist/server/kernel/redis-cache.d.ts.map +1 -1
  1374. package/dist/server/kernel/redis-cache.js +20 -5
  1375. package/dist/server/kernel/redis-cache.js.map +1 -1
  1376. package/dist/server/kernel/redis-client.d.ts.map +1 -1
  1377. package/dist/server/kernel/redis-client.js +5 -1
  1378. package/dist/server/kernel/redis-client.js.map +1 -1
  1379. package/dist/server/kernel/redis-rate-limiter.d.ts +12 -0
  1380. package/dist/server/kernel/redis-rate-limiter.d.ts.map +1 -1
  1381. package/dist/server/kernel/redis-rate-limiter.js +24 -1
  1382. package/dist/server/kernel/redis-rate-limiter.js.map +1 -1
  1383. package/dist/server/kernel/redis-streams-broker.d.ts +65 -0
  1384. package/dist/server/kernel/redis-streams-broker.d.ts.map +1 -0
  1385. package/dist/server/kernel/redis-streams-broker.js +208 -0
  1386. package/dist/server/kernel/redis-streams-broker.js.map +1 -0
  1387. package/dist/server/kernel/request-context.d.ts +4 -0
  1388. package/dist/server/kernel/request-context.d.ts.map +1 -1
  1389. package/dist/server/kernel/request-context.js +4 -0
  1390. package/dist/server/kernel/request-context.js.map +1 -1
  1391. package/dist/server/kernel/router-utils.d.ts +7 -0
  1392. package/dist/server/kernel/router-utils.d.ts.map +1 -1
  1393. package/dist/server/kernel/router-utils.js +31 -2
  1394. package/dist/server/kernel/router-utils.js.map +1 -1
  1395. package/dist/server/kernel/serialize-row.d.ts.map +1 -1
  1396. package/dist/server/kernel/serialize-row.js +4 -2
  1397. package/dist/server/kernel/serialize-row.js.map +1 -1
  1398. package/dist/server/plugin-host/__tests__/core-plugins.test.d.ts +2 -0
  1399. package/dist/server/plugin-host/__tests__/core-plugins.test.d.ts.map +1 -0
  1400. package/dist/server/plugin-host/__tests__/core-plugins.test.js +27 -0
  1401. package/dist/server/plugin-host/__tests__/core-plugins.test.js.map +1 -0
  1402. package/dist/server/plugin-host/__tests__/load-plugins.test.d.ts +2 -0
  1403. package/dist/server/plugin-host/__tests__/load-plugins.test.d.ts.map +1 -0
  1404. package/dist/server/plugin-host/__tests__/load-plugins.test.js +31 -0
  1405. package/dist/server/plugin-host/__tests__/load-plugins.test.js.map +1 -0
  1406. package/dist/server/plugin-host/__tests__/module-registry.test.js.map +1 -1
  1407. package/dist/server/plugin-host/__tests__/required-ports.test.js +1 -0
  1408. package/dist/server/plugin-host/__tests__/required-ports.test.js.map +1 -1
  1409. package/dist/server/plugin-host/__tests__/typed-plugin.test.d.ts +2 -0
  1410. package/dist/server/plugin-host/__tests__/typed-plugin.test.d.ts.map +1 -0
  1411. package/dist/server/plugin-host/__tests__/typed-plugin.test.js +82 -0
  1412. package/dist/server/plugin-host/__tests__/typed-plugin.test.js.map +1 -0
  1413. package/dist/server/plugin-host/core-plugins.d.ts +16 -0
  1414. package/dist/server/plugin-host/core-plugins.d.ts.map +1 -0
  1415. package/dist/server/plugin-host/core-plugins.js +40 -0
  1416. package/dist/server/plugin-host/core-plugins.js.map +1 -0
  1417. package/dist/server/plugin-host/define-plugin.d.ts +24 -24
  1418. package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
  1419. package/dist/server/plugin-host/define-plugin.js +1 -3
  1420. package/dist/server/plugin-host/define-plugin.js.map +1 -1
  1421. package/dist/server/plugin-host/index.d.ts +3 -3
  1422. package/dist/server/plugin-host/index.d.ts.map +1 -1
  1423. package/dist/server/plugin-host/index.js +2 -2
  1424. package/dist/server/plugin-host/index.js.map +1 -1
  1425. package/dist/server/plugin-host/load-extensions.d.ts +2 -2
  1426. package/dist/server/plugin-host/load-extensions.js +4 -3
  1427. package/dist/server/plugin-host/load-extensions.js.map +1 -1
  1428. package/dist/server/plugin-host/load-plugins.d.ts +7 -3
  1429. package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
  1430. package/dist/server/plugin-host/load-plugins.js +14 -4
  1431. package/dist/server/plugin-host/load-plugins.js.map +1 -1
  1432. package/dist/server/plugin-host/module-registry.d.ts +9 -14
  1433. package/dist/server/plugin-host/module-registry.d.ts.map +1 -1
  1434. package/dist/server/plugin-host/module-registry.js +2 -9
  1435. package/dist/server/plugin-host/module-registry.js.map +1 -1
  1436. package/dist/server/plugin-host/service-manifest.d.ts.map +1 -1
  1437. package/dist/server/plugin-host/service-manifest.js +4 -2
  1438. package/dist/server/plugin-host/service-manifest.js.map +1 -1
  1439. package/dist/server/runtime/__tests__/create-app.test.d.ts +2 -0
  1440. package/dist/server/runtime/__tests__/create-app.test.d.ts.map +1 -0
  1441. package/dist/server/runtime/__tests__/create-app.test.js +73 -0
  1442. package/dist/server/runtime/__tests__/create-app.test.js.map +1 -0
  1443. package/dist/server/runtime/assert-durable-seams.d.ts +19 -0
  1444. package/dist/server/runtime/assert-durable-seams.d.ts.map +1 -0
  1445. package/dist/server/runtime/assert-durable-seams.js +32 -0
  1446. package/dist/server/runtime/assert-durable-seams.js.map +1 -0
  1447. package/dist/server/runtime/core-token-catalog.d.ts +136 -0
  1448. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -0
  1449. package/dist/server/runtime/core-token-catalog.js +64 -0
  1450. package/dist/server/runtime/core-token-catalog.js.map +1 -0
  1451. package/dist/server/runtime/create-app.d.ts +20 -14
  1452. package/dist/server/runtime/create-app.d.ts.map +1 -1
  1453. package/dist/server/runtime/create-app.js +132 -68
  1454. package/dist/server/runtime/create-app.js.map +1 -1
  1455. package/dist/server/runtime/index.d.ts +2 -3
  1456. package/dist/server/runtime/index.d.ts.map +1 -1
  1457. package/dist/server/runtime/index.js +0 -2
  1458. package/dist/server/runtime/index.js.map +1 -1
  1459. package/dist/testing/index.d.ts +5 -0
  1460. package/dist/testing/index.d.ts.map +1 -0
  1461. package/dist/testing/index.js +5 -0
  1462. package/dist/testing/index.js.map +1 -0
  1463. package/dist/testing/mock.d.ts +49 -15
  1464. package/dist/testing/mock.d.ts.map +1 -1
  1465. package/dist/testing/mock.js +111 -39
  1466. package/dist/testing/mock.js.map +1 -1
  1467. package/dist/testing/real-infra.d.ts +47 -0
  1468. package/dist/testing/real-infra.d.ts.map +1 -0
  1469. package/dist/testing/real-infra.js +125 -0
  1470. package/dist/testing/real-infra.js.map +1 -0
  1471. package/dist/testing/realtime-transport-conformance.d.ts +35 -0
  1472. package/dist/testing/realtime-transport-conformance.d.ts.map +1 -0
  1473. package/dist/testing/realtime-transport-conformance.js +81 -0
  1474. package/dist/testing/realtime-transport-conformance.js.map +1 -0
  1475. package/dist/testing/seed-player.d.ts +88 -0
  1476. package/dist/testing/seed-player.d.ts.map +1 -0
  1477. package/dist/testing/seed-player.js +43 -0
  1478. package/dist/testing/seed-player.js.map +1 -0
  1479. package/dist/wallet/__tests__/admin-reporting.int.test.d.ts +2 -0
  1480. package/dist/wallet/__tests__/admin-reporting.int.test.d.ts.map +1 -0
  1481. package/dist/wallet/__tests__/admin-reporting.int.test.js +236 -0
  1482. package/dist/wallet/__tests__/admin-reporting.int.test.js.map +1 -0
  1483. package/dist/wallet/__tests__/bonus-rollover-concurrency.int.test.d.ts +2 -0
  1484. package/dist/wallet/__tests__/bonus-rollover-concurrency.int.test.d.ts.map +1 -0
  1485. package/dist/wallet/__tests__/bonus-rollover-concurrency.int.test.js +163 -0
  1486. package/dist/wallet/__tests__/bonus-rollover-concurrency.int.test.js.map +1 -0
  1487. package/dist/wallet/__tests__/bonus-rollover.int.test.d.ts +2 -0
  1488. package/dist/wallet/__tests__/bonus-rollover.int.test.d.ts.map +1 -0
  1489. package/dist/wallet/__tests__/bonus-rollover.int.test.js +444 -0
  1490. package/dist/wallet/__tests__/bonus-rollover.int.test.js.map +1 -0
  1491. package/dist/wallet/__tests__/custody-sweep-gate.test.d.ts +2 -0
  1492. package/dist/wallet/__tests__/custody-sweep-gate.test.d.ts.map +1 -0
  1493. package/dist/wallet/__tests__/custody-sweep-gate.test.js +70 -0
  1494. package/dist/wallet/__tests__/custody-sweep-gate.test.js.map +1 -0
  1495. package/dist/wallet/__tests__/custody-sweep.service.int.test.d.ts +2 -0
  1496. package/dist/wallet/__tests__/custody-sweep.service.int.test.d.ts.map +1 -0
  1497. package/dist/wallet/__tests__/custody-sweep.service.int.test.js +246 -0
  1498. package/dist/wallet/__tests__/custody-sweep.service.int.test.js.map +1 -0
  1499. package/dist/wallet/__tests__/hmac-payment-webhook-verifier.test.d.ts +2 -0
  1500. package/dist/wallet/__tests__/hmac-payment-webhook-verifier.test.d.ts.map +1 -0
  1501. package/dist/wallet/__tests__/hmac-payment-webhook-verifier.test.js +25 -0
  1502. package/dist/wallet/__tests__/hmac-payment-webhook-verifier.test.js.map +1 -0
  1503. package/dist/wallet/__tests__/rail-for.test.d.ts +2 -0
  1504. package/dist/wallet/__tests__/rail-for.test.d.ts.map +1 -0
  1505. package/dist/wallet/__tests__/rail-for.test.js +29 -0
  1506. package/dist/wallet/__tests__/rail-for.test.js.map +1 -0
  1507. package/dist/wallet/__tests__/reconciliation-diff.test.d.ts +2 -0
  1508. package/dist/wallet/__tests__/reconciliation-diff.test.d.ts.map +1 -0
  1509. package/dist/wallet/__tests__/reconciliation-diff.test.js +49 -0
  1510. package/dist/wallet/__tests__/reconciliation-diff.test.js.map +1 -0
  1511. package/dist/wallet/__tests__/reconciliation.service.int.test.d.ts +2 -0
  1512. package/dist/wallet/__tests__/reconciliation.service.int.test.d.ts.map +1 -0
  1513. package/dist/wallet/__tests__/reconciliation.service.int.test.js +395 -0
  1514. package/dist/wallet/__tests__/reconciliation.service.int.test.js.map +1 -0
  1515. package/dist/wallet/__tests__/settlement-network.test.d.ts +2 -0
  1516. package/dist/wallet/__tests__/settlement-network.test.d.ts.map +1 -0
  1517. package/dist/wallet/__tests__/settlement-network.test.js +54 -0
  1518. package/dist/wallet/__tests__/settlement-network.test.js.map +1 -0
  1519. package/dist/wallet/__tests__/wallet-asset.router.int.test.d.ts +2 -0
  1520. package/dist/wallet/__tests__/wallet-asset.router.int.test.d.ts.map +1 -0
  1521. package/dist/wallet/__tests__/wallet-asset.router.int.test.js +244 -0
  1522. package/dist/wallet/__tests__/wallet-asset.router.int.test.js.map +1 -0
  1523. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.d.ts +2 -0
  1524. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.d.ts.map +1 -0
  1525. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js +136 -0
  1526. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js.map +1 -0
  1527. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts +2 -0
  1528. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.d.ts.map +1 -0
  1529. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +204 -0
  1530. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -0
  1531. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.d.ts +2 -0
  1532. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.d.ts.map +1 -0
  1533. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +775 -0
  1534. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -0
  1535. package/dist/wallet/__tests__/wallet-bonus-rollover-config.router.int.test.d.ts +2 -0
  1536. package/dist/wallet/__tests__/wallet-bonus-rollover-config.router.int.test.d.ts.map +1 -0
  1537. package/dist/wallet/__tests__/wallet-bonus-rollover-config.router.int.test.js +113 -0
  1538. package/dist/wallet/__tests__/wallet-bonus-rollover-config.router.int.test.js.map +1 -0
  1539. package/dist/wallet/__tests__/wallet-commands.service.int.test.d.ts +2 -0
  1540. package/dist/wallet/__tests__/wallet-commands.service.int.test.d.ts.map +1 -0
  1541. package/dist/wallet/__tests__/wallet-commands.service.int.test.js +194 -0
  1542. package/dist/wallet/__tests__/wallet-commands.service.int.test.js.map +1 -0
  1543. package/dist/wallet/__tests__/wallet-currency-code.test.d.ts +2 -0
  1544. package/dist/wallet/__tests__/wallet-currency-code.test.d.ts.map +1 -0
  1545. package/dist/wallet/__tests__/wallet-currency-code.test.js +43 -0
  1546. package/dist/wallet/__tests__/wallet-currency-code.test.js.map +1 -0
  1547. package/dist/wallet/__tests__/wallet-custody-routes.router.test.d.ts +2 -0
  1548. package/dist/wallet/__tests__/wallet-custody-routes.router.test.d.ts.map +1 -0
  1549. package/dist/wallet/__tests__/wallet-custody-routes.router.test.js +128 -0
  1550. package/dist/wallet/__tests__/wallet-custody-routes.router.test.js.map +1 -0
  1551. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.d.ts +2 -0
  1552. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.d.ts.map +1 -0
  1553. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js +104 -0
  1554. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js.map +1 -0
  1555. package/dist/wallet/__tests__/wallet-webhook.router.int.test.d.ts +2 -0
  1556. package/dist/wallet/__tests__/wallet-webhook.router.int.test.d.ts.map +1 -0
  1557. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js +309 -0
  1558. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js.map +1 -0
  1559. package/dist/wallet/__tests__/wallet-withdrawal-address.router.int.test.d.ts +2 -0
  1560. package/dist/wallet/__tests__/wallet-withdrawal-address.router.int.test.d.ts.map +1 -0
  1561. package/dist/wallet/__tests__/wallet-withdrawal-address.router.int.test.js +170 -0
  1562. package/dist/wallet/__tests__/wallet-withdrawal-address.router.int.test.js.map +1 -0
  1563. package/dist/wallet/__tests__/wallet.rate-limit.int.test.d.ts +2 -0
  1564. package/dist/wallet/__tests__/wallet.rate-limit.int.test.d.ts.map +1 -0
  1565. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js +117 -0
  1566. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js.map +1 -0
  1567. package/dist/wallet/__tests__/wallet.router.int.test.d.ts +2 -0
  1568. package/dist/wallet/__tests__/wallet.router.int.test.d.ts.map +1 -0
  1569. package/dist/wallet/__tests__/wallet.router.int.test.js +103 -0
  1570. package/dist/wallet/__tests__/wallet.router.int.test.js.map +1 -0
  1571. package/dist/wallet/__tests__/wallet.service.int.test.d.ts +2 -0
  1572. package/dist/wallet/__tests__/wallet.service.int.test.d.ts.map +1 -0
  1573. package/dist/wallet/__tests__/wallet.service.int.test.js +1355 -0
  1574. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -0
  1575. package/dist/wallet/adapters/hmac-payment-webhook-verifier.d.ts +7 -0
  1576. package/dist/wallet/adapters/hmac-payment-webhook-verifier.d.ts.map +1 -0
  1577. package/dist/wallet/adapters/hmac-payment-webhook-verifier.js +30 -0
  1578. package/dist/wallet/adapters/hmac-payment-webhook-verifier.js.map +1 -0
  1579. package/dist/wallet/adapters/mock/mock-payment-adapter.d.ts +2 -2
  1580. package/dist/wallet/adapters/wallet-asset-catalog.service.d.ts +14 -0
  1581. package/dist/wallet/adapters/wallet-asset-catalog.service.d.ts.map +1 -0
  1582. package/dist/wallet/adapters/wallet-asset-catalog.service.js +37 -0
  1583. package/dist/wallet/adapters/wallet-asset-catalog.service.js.map +1 -0
  1584. package/dist/wallet/adapters/wallet-reader.service.d.ts +2 -1
  1585. package/dist/wallet/adapters/wallet-reader.service.d.ts.map +1 -1
  1586. package/dist/wallet/adapters/wallet-reader.service.js +19 -2
  1587. package/dist/wallet/adapters/wallet-reader.service.js.map +1 -1
  1588. package/dist/wallet/admin-reporting.d.ts +7 -7
  1589. package/dist/wallet/admin-reporting.d.ts.map +1 -1
  1590. package/dist/wallet/admin-reporting.js +19 -11
  1591. package/dist/wallet/admin-reporting.js.map +1 -1
  1592. package/dist/wallet/contract/index.d.ts +887 -28
  1593. package/dist/wallet/contract/index.d.ts.map +1 -1
  1594. package/dist/wallet/contract/index.js +418 -20
  1595. package/dist/wallet/contract/index.js.map +1 -1
  1596. package/dist/wallet/drizzle/migrations/0001_redundant_micromacro.sql +4 -0
  1597. package/dist/wallet/drizzle/migrations/0002_aromatic_archangel.sql +20 -0
  1598. package/dist/wallet/drizzle/migrations/0003_certain_ogun.sql +2 -0
  1599. package/dist/wallet/drizzle/migrations/0004_reflective_shriek.sql +2 -0
  1600. package/dist/wallet/drizzle/migrations/0005_gigantic_dust.sql +10 -0
  1601. package/dist/wallet/drizzle/migrations/0006_lush_morg.sql +1 -0
  1602. package/dist/wallet/drizzle/migrations/0007_bouncy_swordsman.sql +17 -0
  1603. package/dist/wallet/drizzle/migrations/0008_gorgeous_colonel_america.sql +1 -0
  1604. package/dist/wallet/drizzle/migrations/0009_smooth_sue_storm.sql +17 -0
  1605. package/dist/wallet/drizzle/migrations/0010_worthless_quasimodo.sql +84 -0
  1606. package/dist/wallet/drizzle/migrations/0011_premium_natasha_romanoff.sql +30 -0
  1607. package/dist/wallet/drizzle/migrations/0012_long_wong.sql +15 -0
  1608. package/dist/wallet/drizzle/migrations/meta/0001_snapshot.json +397 -0
  1609. package/dist/wallet/drizzle/migrations/meta/0002_snapshot.json +513 -0
  1610. package/dist/wallet/drizzle/migrations/meta/0003_snapshot.json +567 -0
  1611. package/dist/wallet/drizzle/migrations/meta/0004_snapshot.json +631 -0
  1612. package/dist/wallet/drizzle/migrations/meta/0006_snapshot.json +638 -0
  1613. package/dist/wallet/drizzle/migrations/meta/0007_snapshot.json +723 -0
  1614. package/dist/wallet/drizzle/migrations/meta/0008_snapshot.json +716 -0
  1615. package/dist/wallet/drizzle/migrations/meta/0009_snapshot.json +895 -0
  1616. package/dist/wallet/drizzle/migrations/meta/0010_snapshot.json +1565 -0
  1617. package/dist/wallet/drizzle/migrations/meta/0011_snapshot.json +1777 -0
  1618. package/dist/wallet/drizzle/migrations/meta/0012_snapshot.json +1907 -0
  1619. package/dist/wallet/drizzle/migrations/meta/_journal.json +84 -0
  1620. package/dist/wallet/index.d.ts.map +1 -1
  1621. package/dist/wallet/index.js +0 -2
  1622. package/dist/wallet/index.js.map +1 -1
  1623. package/dist/wallet/migrate.d.ts +0 -1
  1624. package/dist/wallet/migrate.d.ts.map +1 -1
  1625. package/dist/wallet/migrate.js +0 -4
  1626. package/dist/wallet/migrate.js.map +1 -1
  1627. package/dist/wallet/plugin.d.ts +137 -1
  1628. package/dist/wallet/plugin.d.ts.map +1 -1
  1629. package/dist/wallet/plugin.js +125 -16
  1630. package/dist/wallet/plugin.js.map +1 -1
  1631. package/dist/wallet/router/index.d.ts +481 -16
  1632. package/dist/wallet/router/index.d.ts.map +1 -1
  1633. package/dist/wallet/router/index.js +207 -21
  1634. package/dist/wallet/router/index.js.map +1 -1
  1635. package/dist/wallet/schema/index.d.ts +2029 -9
  1636. package/dist/wallet/schema/index.d.ts.map +1 -1
  1637. package/dist/wallet/schema/index.js +277 -6
  1638. package/dist/wallet/schema/index.js.map +1 -1
  1639. package/dist/wallet/seed/index.d.ts +3 -0
  1640. package/dist/wallet/seed/index.d.ts.map +1 -0
  1641. package/dist/wallet/seed/index.js +3 -0
  1642. package/dist/wallet/seed/index.js.map +1 -0
  1643. package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts +11 -0
  1644. package/dist/wallet/seed/seed-auto-withdrawal-config.d.ts.map +1 -0
  1645. package/dist/wallet/seed/seed-auto-withdrawal-config.js +16 -0
  1646. package/dist/wallet/seed/seed-auto-withdrawal-config.js.map +1 -0
  1647. package/dist/wallet/seed/seed-bonus-rollover-config.d.ts +3 -0
  1648. package/dist/wallet/seed/seed-bonus-rollover-config.d.ts.map +1 -0
  1649. package/dist/wallet/seed/seed-bonus-rollover-config.js +8 -0
  1650. package/dist/wallet/seed/seed-bonus-rollover-config.js.map +1 -0
  1651. package/dist/wallet/service/custody-sweep.service.d.ts +77 -0
  1652. package/dist/wallet/service/custody-sweep.service.d.ts.map +1 -0
  1653. package/dist/wallet/service/custody-sweep.service.js +354 -0
  1654. package/dist/wallet/service/custody-sweep.service.js.map +1 -0
  1655. package/dist/wallet/service/reconciliation-finding.service.d.ts +39 -0
  1656. package/dist/wallet/service/reconciliation-finding.service.d.ts.map +1 -0
  1657. package/dist/wallet/service/reconciliation-finding.service.js +36 -0
  1658. package/dist/wallet/service/reconciliation-finding.service.js.map +1 -0
  1659. package/dist/wallet/service/reconciliation.service.d.ts +112 -0
  1660. package/dist/wallet/service/reconciliation.service.d.ts.map +1 -0
  1661. package/dist/wallet/service/reconciliation.service.js +509 -0
  1662. package/dist/wallet/service/reconciliation.service.js.map +1 -0
  1663. package/dist/wallet/service/wallet-commands.service.d.ts +11 -2
  1664. package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
  1665. package/dist/wallet/service/wallet-commands.service.js +176 -34
  1666. package/dist/wallet/service/wallet-commands.service.js.map +1 -1
  1667. package/dist/wallet/service/wallet.service.d.ts +604 -29
  1668. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  1669. package/dist/wallet/service/wallet.service.js +1295 -149
  1670. package/dist/wallet/service/wallet.service.js.map +1 -1
  1671. package/generators/src/config.ts +548 -0
  1672. package/generators/src/templates/adapter.hbs +19 -0
  1673. package/generators/src/templates/contract.hbs +19 -0
  1674. package/generators/src/templates/job-worker.hbs +34 -0
  1675. package/generators/src/templates/module/drizzle.config.hbs +22 -0
  1676. package/generators/src/templates/module/index.hbs +5 -0
  1677. package/generators/src/templates/module/migrate.hbs +17 -0
  1678. package/generators/src/templates/module/plugin.hbs +19 -0
  1679. package/generators/src/templates/module/router.hbs +19 -0
  1680. package/generators/src/templates/module/schema.hbs +14 -0
  1681. package/generators/src/templates/module/service.hbs +26 -0
  1682. package/generators/src/templates/plugin.hbs +20 -0
  1683. package/oxlint/oxlintrc.json +19 -3
  1684. package/package.json +128 -16
  1685. package/dist/admin-console/__tests__/backoffice.service.test.d.ts +0 -2
  1686. package/dist/admin-console/__tests__/backoffice.service.test.d.ts.map +0 -1
  1687. package/dist/admin-console/__tests__/backoffice.service.test.js +0 -156
  1688. package/dist/admin-console/__tests__/backoffice.service.test.js.map +0 -1
  1689. package/dist/audit/__tests__/audit.service.test.d.ts +0 -2
  1690. package/dist/audit/__tests__/audit.service.test.d.ts.map +0 -1
  1691. package/dist/audit/__tests__/audit.service.test.js +0 -415
  1692. package/dist/audit/__tests__/audit.service.test.js.map +0 -1
  1693. package/dist/casino/gaming/__tests__/gaming.service.test.d.ts +0 -2
  1694. package/dist/casino/gaming/__tests__/gaming.service.test.d.ts.map +0 -1
  1695. package/dist/casino/gaming/__tests__/gaming.service.test.js +0 -55
  1696. package/dist/casino/gaming/__tests__/gaming.service.test.js.map +0 -1
  1697. package/dist/casino/lobby/__tests__/lobby.cache.test.d.ts +0 -2
  1698. package/dist/casino/lobby/__tests__/lobby.cache.test.d.ts.map +0 -1
  1699. package/dist/casino/lobby/__tests__/lobby.cache.test.js +0 -47
  1700. package/dist/casino/lobby/__tests__/lobby.cache.test.js.map +0 -1
  1701. package/dist/casino/lobby/__tests__/lobby.service.test.d.ts +0 -2
  1702. package/dist/casino/lobby/__tests__/lobby.service.test.d.ts.map +0 -1
  1703. package/dist/casino/lobby/__tests__/lobby.service.test.js +0 -11
  1704. package/dist/casino/lobby/__tests__/lobby.service.test.js.map +0 -1
  1705. package/dist/cms/__tests__/cms.cache.test.d.ts +0 -2
  1706. package/dist/cms/__tests__/cms.cache.test.d.ts.map +0 -1
  1707. package/dist/cms/__tests__/cms.cache.test.js +0 -87
  1708. package/dist/cms/__tests__/cms.cache.test.js.map +0 -1
  1709. package/dist/cms/__tests__/cms.service.test.d.ts +0 -2
  1710. package/dist/cms/__tests__/cms.service.test.d.ts.map +0 -1
  1711. package/dist/cms/__tests__/cms.service.test.js +0 -17
  1712. package/dist/cms/__tests__/cms.service.test.js.map +0 -1
  1713. package/dist/compliance/__tests__/compliance.service.test.d.ts +0 -2
  1714. package/dist/compliance/__tests__/compliance.service.test.d.ts.map +0 -1
  1715. package/dist/compliance/__tests__/compliance.service.test.js +0 -95
  1716. package/dist/compliance/__tests__/compliance.service.test.js.map +0 -1
  1717. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.d.ts +0 -2
  1718. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.d.ts.map +0 -1
  1719. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js +0 -21
  1720. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js.map +0 -1
  1721. package/dist/compliance/__tests__/kyc.service.test.d.ts +0 -2
  1722. package/dist/compliance/__tests__/kyc.service.test.d.ts.map +0 -1
  1723. package/dist/compliance/__tests__/kyc.service.test.js +0 -152
  1724. package/dist/compliance/__tests__/kyc.service.test.js.map +0 -1
  1725. package/dist/compliance/__tests__/rg-monitoring.service.test.d.ts +0 -2
  1726. package/dist/compliance/__tests__/rg-monitoring.service.test.d.ts.map +0 -1
  1727. package/dist/compliance/__tests__/rg-monitoring.service.test.js +0 -99
  1728. package/dist/compliance/__tests__/rg-monitoring.service.test.js.map +0 -1
  1729. package/dist/compliance/__tests__/rg.router.test.d.ts +0 -2
  1730. package/dist/compliance/__tests__/rg.router.test.d.ts.map +0 -1
  1731. package/dist/compliance/__tests__/rg.router.test.js +0 -65
  1732. package/dist/compliance/__tests__/rg.router.test.js.map +0 -1
  1733. package/dist/compliance/__tests__/rg.service.test.d.ts +0 -2
  1734. package/dist/compliance/__tests__/rg.service.test.d.ts.map +0 -1
  1735. package/dist/compliance/__tests__/rg.service.test.js +0 -206
  1736. package/dist/compliance/__tests__/rg.service.test.js.map +0 -1
  1737. package/dist/contracts/schemas/__tests__/identity-schemas.test.d.ts +0 -2
  1738. package/dist/contracts/schemas/__tests__/identity-schemas.test.d.ts.map +0 -1
  1739. package/dist/contracts/schemas/__tests__/identity-schemas.test.js +0 -38
  1740. package/dist/contracts/schemas/__tests__/identity-schemas.test.js.map +0 -1
  1741. package/dist/engagement/chat/__tests__/chat.service.test.d.ts +0 -2
  1742. package/dist/engagement/chat/__tests__/chat.service.test.d.ts.map +0 -1
  1743. package/dist/engagement/chat/__tests__/chat.service.test.js +0 -170
  1744. package/dist/engagement/chat/__tests__/chat.service.test.js.map +0 -1
  1745. package/dist/engagement/chat/react/use-chat-stream.d.ts +0 -27
  1746. package/dist/engagement/chat/react/use-chat-stream.d.ts.map +0 -1
  1747. package/dist/engagement/chat/react/use-chat-stream.js +0 -52
  1748. package/dist/engagement/chat/react/use-chat-stream.js.map +0 -1
  1749. package/dist/engagement/notifications/__tests__/notifications.service.test.d.ts +0 -2
  1750. package/dist/engagement/notifications/__tests__/notifications.service.test.d.ts.map +0 -1
  1751. package/dist/engagement/notifications/__tests__/notifications.service.test.js +0 -83
  1752. package/dist/engagement/notifications/__tests__/notifications.service.test.js.map +0 -1
  1753. package/dist/engagement/react.d.ts +0 -2
  1754. package/dist/engagement/react.d.ts.map +0 -1
  1755. package/dist/engagement/react.js +0 -3
  1756. package/dist/engagement/react.js.map +0 -1
  1757. package/dist/iam/__tests__/iam.service.test.d.ts +0 -2
  1758. package/dist/iam/__tests__/iam.service.test.d.ts.map +0 -1
  1759. package/dist/iam/__tests__/iam.service.test.js +0 -739
  1760. package/dist/iam/__tests__/iam.service.test.js.map +0 -1
  1761. package/dist/pam/identity/__tests__/admin-user-directory.test.d.ts +0 -2
  1762. package/dist/pam/identity/__tests__/admin-user-directory.test.d.ts.map +0 -1
  1763. package/dist/pam/identity/__tests__/admin-user-directory.test.js +0 -93
  1764. package/dist/pam/identity/__tests__/admin-user-directory.test.js.map +0 -1
  1765. package/dist/pam/identity/__tests__/identity.rate-limit.test.d.ts +0 -2
  1766. package/dist/pam/identity/__tests__/identity.rate-limit.test.d.ts.map +0 -1
  1767. package/dist/pam/identity/__tests__/identity.rate-limit.test.js +0 -127
  1768. package/dist/pam/identity/__tests__/identity.rate-limit.test.js.map +0 -1
  1769. package/dist/pam/identity/__tests__/identity.service.test.d.ts +0 -2
  1770. package/dist/pam/identity/__tests__/identity.service.test.d.ts.map +0 -1
  1771. package/dist/pam/identity/__tests__/identity.service.test.js +0 -292
  1772. package/dist/pam/identity/__tests__/identity.service.test.js.map +0 -1
  1773. package/dist/pam/identity/__tests__/login-enforcement.service.test.d.ts +0 -2
  1774. package/dist/pam/identity/__tests__/login-enforcement.service.test.d.ts.map +0 -1
  1775. package/dist/pam/identity/__tests__/login-enforcement.service.test.js +0 -41
  1776. package/dist/pam/identity/__tests__/login-enforcement.service.test.js.map +0 -1
  1777. package/dist/pam/player-management/__tests__/kyc-status-writer.test.d.ts +0 -2
  1778. package/dist/pam/player-management/__tests__/kyc-status-writer.test.d.ts.map +0 -1
  1779. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js +0 -37
  1780. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js.map +0 -1
  1781. package/dist/pam/player-management/__tests__/player.router.test.d.ts +0 -2
  1782. package/dist/pam/player-management/__tests__/player.router.test.d.ts.map +0 -1
  1783. package/dist/pam/player-management/__tests__/player.router.test.js +0 -57
  1784. package/dist/pam/player-management/__tests__/player.router.test.js.map +0 -1
  1785. package/dist/pam/player-management/__tests__/player.service.test.d.ts +0 -2
  1786. package/dist/pam/player-management/__tests__/player.service.test.d.ts.map +0 -1
  1787. package/dist/pam/player-management/__tests__/player.service.test.js +0 -143
  1788. package/dist/pam/player-management/__tests__/player.service.test.js.map +0 -1
  1789. package/dist/pam/profile/__tests__/profile.service.test.d.ts +0 -2
  1790. package/dist/pam/profile/__tests__/profile.service.test.d.ts.map +0 -1
  1791. package/dist/pam/profile/__tests__/profile.service.test.js +0 -47
  1792. package/dist/pam/profile/__tests__/profile.service.test.js.map +0 -1
  1793. package/dist/pam/tag/__tests__/get-active-tag-keys.test.d.ts +0 -2
  1794. package/dist/pam/tag/__tests__/get-active-tag-keys.test.d.ts.map +0 -1
  1795. package/dist/pam/tag/__tests__/get-active-tag-keys.test.js +0 -37
  1796. package/dist/pam/tag/__tests__/get-active-tag-keys.test.js.map +0 -1
  1797. package/dist/pam/tag/__tests__/tag-evaluation.service.test.d.ts +0 -2
  1798. package/dist/pam/tag/__tests__/tag-evaluation.service.test.d.ts.map +0 -1
  1799. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +0 -268
  1800. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +0 -1
  1801. package/dist/pam/tag/__tests__/tag-rule.service.test.d.ts +0 -2
  1802. package/dist/pam/tag/__tests__/tag-rule.service.test.d.ts.map +0 -1
  1803. package/dist/pam/tag/__tests__/tag-rule.service.test.js +0 -149
  1804. package/dist/pam/tag/__tests__/tag-rule.service.test.js.map +0 -1
  1805. package/dist/pam/tag/__tests__/tag.service.test.d.ts +0 -2
  1806. package/dist/pam/tag/__tests__/tag.service.test.d.ts.map +0 -1
  1807. package/dist/pam/tag/__tests__/tag.service.test.js +0 -262
  1808. package/dist/pam/tag/__tests__/tag.service.test.js.map +0 -1
  1809. package/dist/server/auth/__tests__/admin-guard.test.d.ts +0 -2
  1810. package/dist/server/auth/__tests__/admin-guard.test.d.ts.map +0 -1
  1811. package/dist/server/auth/__tests__/admin-guard.test.js +0 -133
  1812. package/dist/server/auth/__tests__/admin-guard.test.js.map +0 -1
  1813. package/dist/server/auth/__tests__/session-resolver.test.d.ts +0 -2
  1814. package/dist/server/auth/__tests__/session-resolver.test.d.ts.map +0 -1
  1815. package/dist/server/auth/__tests__/session-resolver.test.js +0 -27
  1816. package/dist/server/auth/__tests__/session-resolver.test.js.map +0 -1
  1817. package/dist/server/db/outbox/__tests__/relay.test.d.ts +0 -2
  1818. package/dist/server/db/outbox/__tests__/relay.test.d.ts.map +0 -1
  1819. package/dist/server/db/outbox/__tests__/relay.test.js +0 -122
  1820. package/dist/server/db/outbox/__tests__/relay.test.js.map +0 -1
  1821. package/dist/server/kernel/__tests__/bullmq-job-queue.test.d.ts +0 -2
  1822. package/dist/server/kernel/__tests__/bullmq-job-queue.test.d.ts.map +0 -1
  1823. package/dist/server/kernel/__tests__/bullmq-job-queue.test.js +0 -190
  1824. package/dist/server/kernel/__tests__/bullmq-job-queue.test.js.map +0 -1
  1825. package/dist/server/kernel/__tests__/cache.test.d.ts +0 -2
  1826. package/dist/server/kernel/__tests__/cache.test.d.ts.map +0 -1
  1827. package/dist/server/kernel/__tests__/cache.test.js +0 -84
  1828. package/dist/server/kernel/__tests__/cache.test.js.map +0 -1
  1829. package/dist/server/kernel/__tests__/event-bus.test.d.ts +0 -2
  1830. package/dist/server/kernel/__tests__/event-bus.test.d.ts.map +0 -1
  1831. package/dist/server/kernel/__tests__/event-bus.test.js +0 -113
  1832. package/dist/server/kernel/__tests__/event-bus.test.js.map +0 -1
  1833. package/dist/server/kernel/__tests__/job-queue.test.d.ts +0 -2
  1834. package/dist/server/kernel/__tests__/job-queue.test.d.ts.map +0 -1
  1835. package/dist/server/kernel/__tests__/job-queue.test.js +0 -132
  1836. package/dist/server/kernel/__tests__/job-queue.test.js.map +0 -1
  1837. package/dist/server/kernel/__tests__/rate-limiter.test.d.ts +0 -2
  1838. package/dist/server/kernel/__tests__/rate-limiter.test.d.ts.map +0 -1
  1839. package/dist/server/kernel/__tests__/rate-limiter.test.js +0 -69
  1840. package/dist/server/kernel/__tests__/rate-limiter.test.js.map +0 -1
  1841. package/dist/server/kernel/__tests__/realtime-authorizer.test.d.ts +0 -2
  1842. package/dist/server/kernel/__tests__/realtime-authorizer.test.d.ts.map +0 -1
  1843. package/dist/server/kernel/__tests__/realtime-authorizer.test.js +0 -19
  1844. package/dist/server/kernel/__tests__/realtime-authorizer.test.js.map +0 -1
  1845. package/dist/server/kernel/__tests__/redis-cache.test.d.ts +0 -2
  1846. package/dist/server/kernel/__tests__/redis-cache.test.d.ts.map +0 -1
  1847. package/dist/server/kernel/__tests__/redis-cache.test.js +0 -48
  1848. package/dist/server/kernel/__tests__/redis-cache.test.js.map +0 -1
  1849. package/dist/server/kernel/__tests__/redis-rate-limiter.test.d.ts +0 -2
  1850. package/dist/server/kernel/__tests__/redis-rate-limiter.test.d.ts.map +0 -1
  1851. package/dist/server/kernel/__tests__/redis-rate-limiter.test.js +0 -56
  1852. package/dist/server/kernel/__tests__/redis-rate-limiter.test.js.map +0 -1
  1853. package/dist/server/kernel/job-queue.d.ts +0 -28
  1854. package/dist/server/kernel/job-queue.d.ts.map +0 -1
  1855. package/dist/server/kernel/job-queue.js +0 -177
  1856. package/dist/server/kernel/job-queue.js.map +0 -1
  1857. package/dist/server/runtime/openapi.d.ts +0 -15
  1858. package/dist/server/runtime/openapi.d.ts.map +0 -1
  1859. package/dist/server/runtime/openapi.js +0 -26
  1860. package/dist/server/runtime/openapi.js.map +0 -1
  1861. package/dist/wallet/__tests__/admin-reporting.test.d.ts +0 -2
  1862. package/dist/wallet/__tests__/admin-reporting.test.d.ts.map +0 -1
  1863. package/dist/wallet/__tests__/admin-reporting.test.js +0 -124
  1864. package/dist/wallet/__tests__/admin-reporting.test.js.map +0 -1
  1865. package/dist/wallet/__tests__/wallet-auto-rule.router.test.d.ts +0 -2
  1866. package/dist/wallet/__tests__/wallet-auto-rule.router.test.d.ts.map +0 -1
  1867. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js +0 -98
  1868. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js.map +0 -1
  1869. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.d.ts +0 -2
  1870. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.d.ts.map +0 -1
  1871. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js +0 -408
  1872. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js.map +0 -1
  1873. package/dist/wallet/__tests__/wallet-commands.service.test.d.ts +0 -2
  1874. package/dist/wallet/__tests__/wallet-commands.service.test.d.ts.map +0 -1
  1875. package/dist/wallet/__tests__/wallet-commands.service.test.js +0 -159
  1876. package/dist/wallet/__tests__/wallet-commands.service.test.js.map +0 -1
  1877. package/dist/wallet/__tests__/wallet-kyc-gate.test.d.ts +0 -2
  1878. package/dist/wallet/__tests__/wallet-kyc-gate.test.d.ts.map +0 -1
  1879. package/dist/wallet/__tests__/wallet-kyc-gate.test.js +0 -61
  1880. package/dist/wallet/__tests__/wallet-kyc-gate.test.js.map +0 -1
  1881. package/dist/wallet/__tests__/wallet.rate-limit.test.d.ts +0 -2
  1882. package/dist/wallet/__tests__/wallet.rate-limit.test.d.ts.map +0 -1
  1883. package/dist/wallet/__tests__/wallet.rate-limit.test.js +0 -34
  1884. package/dist/wallet/__tests__/wallet.rate-limit.test.js.map +0 -1
  1885. package/dist/wallet/__tests__/wallet.router.test.d.ts +0 -2
  1886. package/dist/wallet/__tests__/wallet.router.test.d.ts.map +0 -1
  1887. package/dist/wallet/__tests__/wallet.router.test.js +0 -43
  1888. package/dist/wallet/__tests__/wallet.router.test.js.map +0 -1
  1889. package/dist/wallet/__tests__/wallet.service.test.d.ts +0 -2
  1890. package/dist/wallet/__tests__/wallet.service.test.d.ts.map +0 -1
  1891. package/dist/wallet/__tests__/wallet.service.test.js +0 -698
  1892. package/dist/wallet/__tests__/wallet.service.test.js.map +0 -1
  1893. package/turbo-generators/src/config.ts +0 -466
  1894. package/turbo-generators/src/templates/adapter.hbs +0 -19
  1895. package/turbo-generators/src/templates/contract.hbs +0 -18
  1896. package/turbo-generators/src/templates/job-worker.hbs +0 -34
  1897. package/turbo-generators/src/templates/module/agents.hbs +0 -67
  1898. package/turbo-generators/src/templates/module/drizzle.config.hbs +0 -22
  1899. package/turbo-generators/src/templates/module/index.hbs +0 -5
  1900. package/turbo-generators/src/templates/module/migrate.hbs +0 -15
  1901. package/turbo-generators/src/templates/module/package.json.hbs +0 -62
  1902. package/turbo-generators/src/templates/module/plugin.hbs +0 -20
  1903. package/turbo-generators/src/templates/module/router.hbs +0 -19
  1904. package/turbo-generators/src/templates/module/schema.hbs +0 -21
  1905. package/turbo-generators/src/templates/module/service.hbs +0 -26
  1906. package/turbo-generators/src/templates/module/tsconfig.json.hbs +0 -8
  1907. package/turbo-generators/src/templates/plugin.hbs +0 -20
  1908. /package/{turbo-generators → generators}/src/templates/adr.hbs +0 -0
  1909. /package/{turbo-generators → generators}/src/templates/config.hbs +0 -0
@@ -1,110 +1,645 @@
1
- import { createDomainError, assertOwnership, findOneOrThrow, serializeRow, } from '@openora/core/server';
2
- import { eq, and, isNull, lt, desc, asc, notInArray } from 'drizzle-orm';
1
+ import { randomInt, randomUUID } from 'node:crypto';
2
+ import { createLogger, makeOwnershipError, makeConflictError, createDomainError, assertOwnership, findOneOrThrow, serializeRow, pageToOffset, withAdvisoryXactLock, } from '@openora/core/server';
3
+ import { chatBlockLockKey, chatChannel, GLOBAL_CHAT_ROOM_ID } from '@openora/core/contracts';
4
+ import { eq, and, isNull, or, gt, lt, desc, asc, notInArray, inArray, count, ne, ilike, } from 'drizzle-orm';
3
5
  import { user } from '@openora/core/pam/schema/identity';
4
- import { chatRoom, chatMessage, chatUserBlock } from '../schema/index.js';
6
+ import { player } from '@openora/core/pam/schema/profile';
7
+ import { chatRoom, chatMessage, chatUserBlock, chatUserIgnore, chatRoomMember, chatRoomBan, chatRoomRule, chatRoomConfiguration, chatPlatformBan, } from '../schema/index.js';
8
+ import { ChatMessageNotFoundError, ChatRoomNotFoundError } from './chat-moderation.service.js';
9
+ export { ChatRoomNotMemberError, ChatRoomNotModeratorError, ChatRoomSelfModerationError, ChatRoomLastModeratorError, ChatRoomJoinCodeNotFoundError, ChatRoomBannedError, ChatPlayerBannedError, } from './errors/chat-moderation.errors.js';
10
+ import { ChatRoomNotMemberError, ChatRoomNotModeratorError, ChatPlayerBannedError, } from './errors/chat-moderation.errors.js';
11
+ import { DEFAULT_MESSAGE_LIMIT, JOIN_CODE_ALPHABET, JOIN_CODE_LENGTH, MAX_PRIVATE_ROOMS_PER_PLAYER, PRIVATE_ROOM_SLUG_PREFIX, } from '../contract/constants.js';
5
12
  import { moderateContent } from '../moderation/index.js';
6
- export function chatChannel(roomId) {
7
- return roomId ? `chat:room:${roomId}` : 'chat:global';
13
+ const logger = createLogger('chat');
14
+ function publishChatEvent(transport, roomId, event) {
15
+ void Promise.resolve()
16
+ .then(() => transport.publish(chatChannel(roomId), event))
17
+ .catch((err) => {
18
+ logger.error({ err, roomId }, 'chat realtime publish failed');
19
+ });
8
20
  }
9
- export const ChatRoomNotFoundError = createDomainError('ChatRoomNotFoundError', (id) => `Chat room not found: ${id}`);
10
- export const ChatMessageNotFoundError = createDomainError('ChatMessageNotFoundError', (id) => `Chat message not found: ${id}`);
11
- export const ChatMessageOwnershipError = createDomainError('ChatMessageOwnershipError', (id) => `Not authorized to delete message: ${id}`);
21
+ export const ChatRoomOwnershipError = makeOwnershipError('ChatRoom');
12
22
  export const ChatMessageBlockedError = createDomainError('ChatMessageBlockedError', () => 'Message blocked: it contains prohibited language');
13
23
  export const ChatSelfBlockError = createDomainError('ChatSelfBlockError', () => 'You cannot block yourself');
24
+ export const ChatSelfIgnoreError = createDomainError('ChatSelfIgnoreError', () => 'You cannot ignore yourself');
25
+ export const ChatRoomSlugConflictError = makeConflictError('ChatRoomSlugConflictError', 'A room with this slug already exists');
26
+ export const ChatRoomLimitReachedError = makeConflictError('ChatRoomLimitReachedError', 'Private room limit reached');
27
+ export const ChatRoomProtectedError = makeConflictError('ChatRoomProtectedError', 'The global chat room cannot be deleted');
28
+ export const ChatRoomRuleNotFoundError = createDomainError('ChatRoomRuleNotFoundError', (id) => `Chat room rule not found: ${id}`);
29
+ export const ChatRoomConfigurationNotFoundError = createDomainError('ChatRoomConfigurationNotFoundError', (id) => `Chat room configuration not found: ${id}`);
30
+ const CHAT_MODERATOR_ROLES = ['moderator', 'owner'];
14
31
  function gateContent(content) {
15
32
  const result = moderateContent(content);
16
- if (!result.ok)
33
+ if (!result.ok) {
17
34
  throw new ChatMessageBlockedError();
35
+ }
18
36
  return result.content;
19
37
  }
20
38
  function toRoom(record) {
21
- return serializeRow(record, { dateFields: ['createdAt'] });
39
+ const { deletedAt: _deletedAt, ...room } = record;
40
+ return serializeRow({ ...room, isBanned: false, bannedUntil: null }, { dateFields: ['createdAt', 'bannedUntil'] });
22
41
  }
23
42
  function toMessage(record) {
24
43
  return serializeRow(record, { dateFields: ['createdAt'] });
25
44
  }
45
+ function toRule(record) {
46
+ return serializeRow(record, { dateFields: ['createdAt', 'updatedAt'] });
47
+ }
48
+ function toConfiguration(record) {
49
+ return serializeRow(record, { dateFields: ['createdAt', 'updatedAt'] });
50
+ }
51
+ function toSystemMessage(record) {
52
+ const message = toMessage(record);
53
+ return { ...message, actorId: message.userId };
54
+ }
55
+ function toPublicMessage(record) {
56
+ if (record.type === 'system') {
57
+ return toSystemMessage(record);
58
+ }
59
+ return toMessage(record);
60
+ }
61
+ const BLOCKED_USER_SORT_COLUMNS = { createdAt: chatUserBlock.createdAt };
62
+ const IGNORED_USER_SORT_COLUMNS = {
63
+ createdAt: chatUserIgnore.createdAt,
64
+ };
65
+ function generateJoinCode() {
66
+ return Array.from({ length: JOIN_CODE_LENGTH }, () => {
67
+ const ch = JOIN_CODE_ALPHABET[randomInt(0, JOIN_CODE_ALPHABET.length)];
68
+ return ch ?? 'A';
69
+ }).join('');
70
+ }
71
+ function generatePrivateRoomSlug(joinCode) {
72
+ const normalizedJoinCode = joinCode.toLowerCase();
73
+ let slug = `${PRIVATE_ROOM_SLUG_PREFIX}${randomUUID()}`;
74
+ while (slug.includes(normalizedJoinCode)) {
75
+ slug = `${PRIVATE_ROOM_SLUG_PREFIX}${randomUUID()}`;
76
+ }
77
+ return slug;
78
+ }
79
+ function isUniqueConstraintViolation(e) {
80
+ if (typeof e !== 'object' || e === null || !('code' in e)) {
81
+ return false;
82
+ }
83
+ return e.code === '23505';
84
+ }
26
85
  export class ChatService {
27
86
  drizzle;
28
87
  events;
29
88
  transport;
30
- constructor(drizzle, events, transport) {
89
+ directory;
90
+ audit;
91
+ moderation;
92
+ identityReader;
93
+ socialCommands;
94
+ constructor(drizzle, events, transport, directory, audit, moderation, identityReader, socialCommands) {
31
95
  this.drizzle = drizzle;
32
96
  this.events = events;
33
97
  this.transport = transport;
98
+ this.directory = directory;
99
+ this.audit = audit;
100
+ this.moderation = moderation;
101
+ this.identityReader = identityReader;
102
+ this.socialCommands = socialCommands;
34
103
  }
35
- subscribeMessages(roomId, listener, viewerId) {
104
+ subscribeMessages(roomId, listener, viewerId, connectionId = randomUUID()) {
105
+ const channel = chatChannel(roomId);
106
+ const presenceMemberId = viewerId ?? `anonymous:${connectionId}`;
107
+ const presence = this.transport.presence;
108
+ presence?.join(channel, presenceMemberId, connectionId);
109
+ let active = true;
36
110
  let blocked = viewerId ? null : new Set();
37
111
  const pending = [];
38
112
  const deliver = (message) => {
39
- if (!blocked.has(message.userId))
113
+ if (blocked && !blocked.has(message.userId)) {
40
114
  listener(message);
115
+ }
41
116
  };
42
117
  if (viewerId) {
43
- this.blockedIdsFor(viewerId)
118
+ this.excludedSenderIdsFor(viewerId)
44
119
  .catch(() => new Set())
45
120
  .then((ids) => {
121
+ if (!active) {
122
+ return;
123
+ }
46
124
  blocked = ids;
47
- for (const message of pending)
125
+ for (const message of pending) {
48
126
  deliver(message);
127
+ }
49
128
  pending.length = 0;
50
129
  });
51
130
  }
52
- return this.transport.subscribe(chatChannel(roomId), (message) => {
53
- if (blocked === null)
131
+ const unsubscribe = this.transport.subscribe(channel, (message) => {
132
+ if (!active) {
133
+ return;
134
+ }
135
+ if (blocked === null) {
54
136
  pending.push(message);
55
- else
137
+ }
138
+ else {
56
139
  deliver(message);
57
- });
140
+ }
141
+ }, viewerId);
142
+ return () => {
143
+ active = false;
144
+ unsubscribe();
145
+ presence?.leave(channel, presenceMemberId, connectionId);
146
+ };
147
+ }
148
+ async getOnlineCount(roomId) {
149
+ const onlineUserIds = await this.transport.getOnlineUserIds(chatChannel(roomId));
150
+ const onlineUsers = await this.directory.lookupUsers(onlineUserIds);
151
+ const playerCount = onlineUsers.filter((onlineUser) => onlineUser.role !== 'admin' && onlineUser.role !== 'super-admin').length;
152
+ return { count: playerCount };
58
153
  }
59
154
  async blockedIdsFor(viewerId) {
60
155
  const rows = await this.drizzle.db
61
156
  .select({ blockedId: chatUserBlock.blockedId })
62
157
  .from(chatUserBlock)
63
- .where(eq(chatUserBlock.blockerId, viewerId));
158
+ .where(and(eq(chatUserBlock.blockerId, viewerId), isNull(chatUserBlock.removedAt)));
64
159
  return new Set(rows.map((r) => r.blockedId));
65
160
  }
66
- async resolveDisplayName(userId, fallback) {
161
+ async ignoredIdsFor(viewerId) {
162
+ const rows = await this.drizzle.db
163
+ .select({ ignoredId: chatUserIgnore.ignoredId })
164
+ .from(chatUserIgnore)
165
+ .where(and(eq(chatUserIgnore.ignorerId, viewerId), isNull(chatUserIgnore.removedAt)));
166
+ return new Set(rows.map((r) => r.ignoredId));
167
+ }
168
+ async excludedSenderIdsFor(viewerId) {
169
+ const [blocked, ignored] = await Promise.all([
170
+ this.blockedIdsFor(viewerId),
171
+ this.ignoredIdsFor(viewerId),
172
+ ]);
173
+ return new Set([...blocked, ...ignored]);
174
+ }
175
+ async usernamesFor(userIds) {
176
+ const summaries = await this.directory.lookupPlayers(userIds);
177
+ return new Map(summaries.map((s) => [s.userId, s.username]));
178
+ }
179
+ async resolveUsername(userId, fallback) {
67
180
  const [row] = await this.drizzle.db
68
- .select({ name: user.name })
181
+ .select({ username: user.username })
69
182
  .from(user)
70
183
  .where(eq(user.id, userId))
71
184
  .limit(1);
72
- return row?.name?.trim() || fallback || 'anonymous';
185
+ return row?.username.trim() || fallback || 'anonymous';
186
+ }
187
+ /** Throws ChatRoomNotFoundError or ChatRoomNotMemberError; returns the room on success. */
188
+ async verifyRoomAccess(roomId, viewerId) {
189
+ const [room] = await this.drizzle.db
190
+ .select()
191
+ .from(chatRoom)
192
+ .where(and(eq(chatRoom.id, roomId), isNull(chatRoom.deletedAt)))
193
+ .limit(1);
194
+ if (!room) {
195
+ throw new ChatRoomNotFoundError(roomId);
196
+ }
197
+ if (viewerId) {
198
+ const now = new Date();
199
+ const [roomBan] = await this.drizzle.db
200
+ .select({ expiresAt: chatRoomBan.expiresAt })
201
+ .from(chatRoomBan)
202
+ .where(and(eq(chatRoomBan.roomId, roomId), eq(chatRoomBan.userId, viewerId), isNull(chatRoomBan.liftedAt), or(isNull(chatRoomBan.expiresAt), gt(chatRoomBan.expiresAt, now))))
203
+ .limit(1);
204
+ if (roomBan) {
205
+ throw new ChatPlayerBannedError(roomBan.expiresAt);
206
+ }
207
+ const [platformBan] = await this.drizzle.db
208
+ .select({ expiresAt: chatPlatformBan.expiresAt })
209
+ .from(chatPlatformBan)
210
+ .where(and(eq(chatPlatformBan.userId, viewerId), isNull(chatPlatformBan.liftedAt), or(isNull(chatPlatformBan.expiresAt), gt(chatPlatformBan.expiresAt, now)), room.isPublic
211
+ ? or(eq(chatPlatformBan.scope, '__all'), eq(chatPlatformBan.scope, '__all_public'), and(eq(chatPlatformBan.scope, 'room'), eq(chatPlatformBan.roomId, roomId)))
212
+ : or(eq(chatPlatformBan.scope, '__all'), and(eq(chatPlatformBan.scope, 'room'), eq(chatPlatformBan.roomId, roomId)))))
213
+ .limit(1);
214
+ if (platformBan) {
215
+ throw new ChatPlayerBannedError(platformBan.expiresAt);
216
+ }
217
+ }
218
+ if (!room.isPublic) {
219
+ if (!viewerId) {
220
+ throw new ChatRoomNotMemberError(roomId);
221
+ }
222
+ const [member] = await this.drizzle.db
223
+ .select({ id: chatRoomMember.id })
224
+ .from(chatRoomMember)
225
+ .where(and(eq(chatRoomMember.roomId, roomId), eq(chatRoomMember.userId, viewerId)))
226
+ .limit(1);
227
+ if (!member) {
228
+ throw new ChatRoomNotMemberError(roomId);
229
+ }
230
+ }
231
+ return room;
232
+ }
233
+ async verifyGlobalAccess(viewerId) {
234
+ if (!viewerId) {
235
+ return;
236
+ }
237
+ const [platformBan] = await this.drizzle.db
238
+ .select({ expiresAt: chatPlatformBan.expiresAt })
239
+ .from(chatPlatformBan)
240
+ .where(and(eq(chatPlatformBan.userId, viewerId), isNull(chatPlatformBan.liftedAt), or(isNull(chatPlatformBan.expiresAt), gt(chatPlatformBan.expiresAt, new Date())), or(eq(chatPlatformBan.scope, '__global'), eq(chatPlatformBan.scope, '__all_public'), eq(chatPlatformBan.scope, '__all'))))
241
+ .limit(1);
242
+ if (platformBan) {
243
+ throw new ChatPlayerBannedError(platformBan.expiresAt);
244
+ }
245
+ }
246
+ async listRooms(viewerId) {
247
+ const publicRooms = await this.drizzle.db
248
+ .select()
249
+ .from(chatRoom)
250
+ .where(and(eq(chatRoom.isPublic, true), isNull(chatRoom.deletedAt)))
251
+ .orderBy(asc(chatRoom.createdAt));
252
+ if (!viewerId) {
253
+ return publicRooms.map(toRoom);
254
+ }
255
+ const memberIds = await this.drizzle.db
256
+ .select({ roomId: chatRoomMember.roomId })
257
+ .from(chatRoomMember)
258
+ .where(eq(chatRoomMember.userId, viewerId));
259
+ const now = new Date();
260
+ const bans = await this.drizzle.db
261
+ .select({ roomId: chatRoomBan.roomId, expiresAt: chatRoomBan.expiresAt })
262
+ .from(chatRoomBan)
263
+ .where(and(eq(chatRoomBan.userId, viewerId), isNull(chatRoomBan.liftedAt), or(isNull(chatRoomBan.expiresAt), gt(chatRoomBan.expiresAt, now))));
264
+ const roomBanById = new Map(bans.map((ban) => [ban.roomId, ban.expiresAt]));
265
+ const bannedPrivateIds = bans.map((ban) => ban.roomId);
266
+ const platformBans = await this.drizzle.db
267
+ .select({
268
+ scope: chatPlatformBan.scope,
269
+ roomId: chatPlatformBan.roomId,
270
+ expiresAt: chatPlatformBan.expiresAt,
271
+ })
272
+ .from(chatPlatformBan)
273
+ .where(and(eq(chatPlatformBan.userId, viewerId), isNull(chatPlatformBan.liftedAt), or(isNull(chatPlatformBan.expiresAt), gt(chatPlatformBan.expiresAt, now))));
274
+ const allPublicBan = platformBans.find((ban) => ban.scope === '__all_public' || ban.scope === '__all');
275
+ const allPrivateBan = platformBans.find((ban) => ban.scope === '__all');
276
+ const globalBan = platformBans.find((ban) => ban.scope === '__global');
277
+ for (const ban of platformBans) {
278
+ if (ban.scope === 'room' && ban.roomId) {
279
+ roomBanById.set(ban.roomId, ban.expiresAt);
280
+ }
281
+ }
282
+ const privateRooms = await this.drizzle.db
283
+ .select()
284
+ .from(chatRoom)
285
+ .where(and(eq(chatRoom.isPublic, false), isNull(chatRoom.deletedAt), inArray(chatRoom.id, memberIds.map((r) => r.roomId))))
286
+ .orderBy(asc(chatRoom.createdAt));
287
+ const privateBannedRooms = bannedPrivateIds.length
288
+ ? await this.drizzle.db
289
+ .select()
290
+ .from(chatRoom)
291
+ .where(and(eq(chatRoom.isPublic, false), isNull(chatRoom.deletedAt), inArray(chatRoom.id, bannedPrivateIds)))
292
+ : [];
293
+ const uniqueRooms = [...publicRooms, ...privateRooms, ...privateBannedRooms].filter((room, index, rows) => rows.findIndex((candidate) => candidate.id === room.id) === index);
294
+ return uniqueRooms.map((room) => {
295
+ const roomBanUntil = roomBanById.get(room.id) ?? null;
296
+ const platformBanUntil = room.isPublic
297
+ ? (allPublicBan?.expiresAt ?? null)
298
+ : (allPrivateBan?.expiresAt ?? null);
299
+ return serializeRow({
300
+ ...room,
301
+ isBanned: room.slug === GLOBAL_CHAT_ROOM_ID
302
+ ? Boolean(globalBan || allPublicBan)
303
+ : roomBanById.has(room.id) || Boolean(room.isPublic ? allPublicBan : allPrivateBan),
304
+ bannedUntil: roomBanById.has(room.id) ? roomBanUntil : platformBanUntil,
305
+ }, { dateFields: ['createdAt', 'bannedUntil'] });
306
+ });
307
+ }
308
+ async listAdminRooms({ page, limit, name, sortBy, sortOrder, }) {
309
+ const dir = sortOrder === 'asc' ? asc : desc;
310
+ const col = sortBy === 'name' ? chatRoom.name : chatRoom.createdAt;
311
+ const where = and(eq(chatRoom.isPublic, true), isNull(chatRoom.deletedAt), name ? ilike(chatRoom.name, `%${name}%`) : undefined);
312
+ const [rows, [{ n }]] = await Promise.all([
313
+ this.drizzle.db
314
+ .select()
315
+ .from(chatRoom)
316
+ .where(where)
317
+ .orderBy(dir(col))
318
+ .limit(limit)
319
+ .offset(pageToOffset(page, limit)),
320
+ this.drizzle.db.select({ n: count() }).from(chatRoom).where(where),
321
+ ]);
322
+ return { items: rows.map(toRoom), total: Number(n), page, limit };
323
+ }
324
+ async listModeratedRooms({ viewerId, page, limit, name, sortBy, sortOrder, }) {
325
+ const dir = sortOrder === 'asc' ? asc : desc;
326
+ const col = sortBy === 'name' ? chatRoom.name : chatRoom.createdAt;
327
+ const where = and(eq(chatRoomMember.userId, viewerId), inArray(chatRoomMember.role, ['owner', 'moderator']), isNull(chatRoom.deletedAt), name ? ilike(chatRoom.name, `%${name}%`) : undefined);
328
+ const [rows, [{ n }]] = await Promise.all([
329
+ this.drizzle.db
330
+ .select({ room: chatRoom })
331
+ .from(chatRoomMember)
332
+ .innerJoin(chatRoom, eq(chatRoom.id, chatRoomMember.roomId))
333
+ .where(where)
334
+ .orderBy(dir(col))
335
+ .limit(limit)
336
+ .offset(pageToOffset(page, limit)),
337
+ this.drizzle.db
338
+ .select({ n: count() })
339
+ .from(chatRoomMember)
340
+ .innerJoin(chatRoom, eq(chatRoom.id, chatRoomMember.roomId))
341
+ .where(where),
342
+ ]);
343
+ return { items: rows.map(({ room }) => toRoom(room)), total: Number(n), page, limit };
344
+ }
345
+ async getRoom({ roomId, viewerId }) {
346
+ const room = await this.verifyRoomAccess(roomId, viewerId);
347
+ return toRoom(room);
348
+ }
349
+ async assertRoomModerator(roomId, actorId, targetId) {
350
+ const [actor] = await this.drizzle.db
351
+ .select({ role: chatRoomMember.role })
352
+ .from(chatRoomMember)
353
+ .where(and(eq(chatRoomMember.roomId, roomId), eq(chatRoomMember.userId, actorId)))
354
+ .limit(1);
355
+ if (!actor || !CHAT_MODERATOR_ROLES.includes(actor.role)) {
356
+ throw new ChatRoomNotModeratorError(roomId);
357
+ }
358
+ if (targetId) {
359
+ const [target] = await this.drizzle.db
360
+ .select({ role: chatRoomMember.role })
361
+ .from(chatRoomMember)
362
+ .where(and(eq(chatRoomMember.roomId, roomId), eq(chatRoomMember.userId, targetId)))
363
+ .limit(1);
364
+ if (actor.role !== 'owner' && target && target.role !== 'member') {
365
+ throw new ChatRoomNotModeratorError(roomId);
366
+ }
367
+ }
368
+ return actor.role;
369
+ }
370
+ async listRoomRules(roomReference, viewerId) {
371
+ const isGlobalRoom = roomReference === GLOBAL_CHAT_ROOM_ID;
372
+ const [room] = await this.drizzle.db
373
+ .select({ id: chatRoom.id, slug: chatRoom.slug, isPublic: chatRoom.isPublic })
374
+ .from(chatRoom)
375
+ .where(and(isGlobalRoom ? eq(chatRoom.slug, GLOBAL_CHAT_ROOM_ID) : eq(chatRoom.id, roomReference), isNull(chatRoom.deletedAt)))
376
+ .limit(1);
377
+ if (!room) {
378
+ throw new ChatRoomNotFoundError(roomReference);
379
+ }
380
+ if (!room.isPublic) {
381
+ if (!viewerId) {
382
+ throw new ChatRoomNotMemberError(room.id);
383
+ }
384
+ const [member] = await this.drizzle.db
385
+ .select({ id: chatRoomMember.id })
386
+ .from(chatRoomMember)
387
+ .where(and(eq(chatRoomMember.roomId, room.id), eq(chatRoomMember.userId, viewerId)))
388
+ .limit(1);
389
+ if (!member) {
390
+ throw new ChatRoomNotMemberError(room.id);
391
+ }
392
+ }
393
+ const rows = await this.drizzle.db
394
+ .select()
395
+ .from(chatRoomRule)
396
+ .where(eq(chatRoomRule.roomId, room.id))
397
+ .orderBy(asc(chatRoomRule.orderNum), asc(chatRoomRule.createdAt));
398
+ return rows.map(toRule);
399
+ }
400
+ async createRoomRule({ roomId, actorId, orderNum, content, }) {
401
+ await this.assertRoomModerator(roomId, actorId);
402
+ let nextOrder = orderNum;
403
+ if (nextOrder === undefined) {
404
+ const [last] = await this.drizzle.db
405
+ .select({ orderNum: chatRoomRule.orderNum })
406
+ .from(chatRoomRule)
407
+ .where(eq(chatRoomRule.roomId, roomId))
408
+ .orderBy(desc(chatRoomRule.orderNum))
409
+ .limit(1);
410
+ nextOrder = (last?.orderNum ?? 0) + 1;
411
+ }
412
+ const [created] = await this.drizzle.db
413
+ .insert(chatRoomRule)
414
+ .values({ roomId, createdBy: actorId, orderNum: nextOrder, content })
415
+ .returning();
416
+ return toRule(created);
417
+ }
418
+ async updateRoomRule({ roomId, id, actorId, orderNum, content, }) {
419
+ await this.assertRoomModerator(roomId, actorId);
420
+ const patch = { updatedAt: new Date() };
421
+ if (orderNum !== undefined) {
422
+ patch.orderNum = orderNum;
423
+ }
424
+ if (content !== undefined) {
425
+ patch.content = content;
426
+ }
427
+ const updated = findOneOrThrow(await this.drizzle.db
428
+ .update(chatRoomRule)
429
+ .set(patch)
430
+ .where(and(eq(chatRoomRule.id, id), eq(chatRoomRule.roomId, roomId)))
431
+ .returning(), new ChatRoomRuleNotFoundError(id));
432
+ return toRule(updated);
433
+ }
434
+ async deleteRoomRule({ roomId, id, actorId, }) {
435
+ await this.assertRoomModerator(roomId, actorId);
436
+ findOneOrThrow(await this.drizzle.db
437
+ .delete(chatRoomRule)
438
+ .where(and(eq(chatRoomRule.id, id), eq(chatRoomRule.roomId, roomId)))
439
+ .returning({ id: chatRoomRule.id }), new ChatRoomRuleNotFoundError(id));
440
+ return { success: true };
441
+ }
442
+ async getRoomConfiguration(roomId, viewerId) {
443
+ await this.verifyRoomAccess(roomId, viewerId);
444
+ let [config] = await this.drizzle.db
445
+ .select()
446
+ .from(chatRoomConfiguration)
447
+ .where(eq(chatRoomConfiguration.roomId, roomId))
448
+ .limit(1);
449
+ if (!config) {
450
+ [config] = await this.drizzle.db.insert(chatRoomConfiguration).values({ roomId }).returning();
451
+ }
452
+ return toConfiguration(config);
453
+ }
454
+ async updateRoomConfiguration({ roomId, actorId, ...patch }) {
455
+ await this.assertRoomModerator(roomId, actorId);
456
+ const [config] = await this.drizzle.db
457
+ .insert(chatRoomConfiguration)
458
+ .values({ roomId, ...patch, updatedAt: new Date() })
459
+ .onConflictDoUpdate({
460
+ target: chatRoomConfiguration.roomId,
461
+ set: { ...patch, updatedAt: new Date() },
462
+ })
463
+ .returning();
464
+ return toConfiguration(config);
73
465
  }
74
- async listRooms() {
75
- const rooms = await this.drizzle.db.select().from(chatRoom).orderBy(asc(chatRoom.createdAt));
76
- return rooms.map(toRoom);
466
+ async listRoomUsers({ roomId, actorId, status, }) {
467
+ await this.assertRoomModerator(roomId, actorId);
468
+ const role = status === 'all' ? undefined : status;
469
+ const canSeeAdminUsers = await this.canSeeAdminUsers(actorId);
470
+ const members = await this.drizzle.db
471
+ .select({ member: chatRoomMember, username: user.name })
472
+ .from(chatRoomMember)
473
+ .leftJoin(user, eq(user.id, chatRoomMember.userId))
474
+ .where(and(eq(chatRoomMember.roomId, roomId), role ? eq(chatRoomMember.role, role) : undefined, canSeeAdminUsers
475
+ ? undefined
476
+ : or(isNull(user.id), notInArray(user.role, ['admin', 'super-admin']))))
477
+ .orderBy(asc(chatRoomMember.joinedAt));
478
+ const bans = await this.drizzle.db
479
+ .select()
480
+ .from(chatRoomBan)
481
+ .where(and(eq(chatRoomBan.roomId, roomId), isNull(chatRoomBan.liftedAt)));
482
+ const now = Date.now();
483
+ const activeBans = new Map(bans
484
+ .filter((ban) => !ban.expiresAt || ban.expiresAt.getTime() > now)
485
+ .map((ban) => [ban.userId, ban]));
486
+ const names = await this.directory.lookupPlayers(members.map(({ member }) => member.userId));
487
+ const nameById = new Map(names.map((name) => [name.userId, name.username]));
488
+ return members.map(({ member, username }) => {
489
+ const ban = activeBans.get(member.userId);
490
+ return serializeRow({
491
+ userId: member.userId,
492
+ username: nameById.get(member.userId) ?? username ?? null,
493
+ role: member.role,
494
+ joinedAt: member.joinedAt,
495
+ blocked: Boolean(ban),
496
+ banId: ban?.id ?? null,
497
+ banExpiresAt: ban?.expiresAt ?? null,
498
+ }, { dateFields: ['joinedAt', 'banExpiresAt'] });
499
+ });
500
+ }
501
+ async listRoomBlockedUsers({ roomId, actorId }) {
502
+ await this.assertRoomModerator(roomId, actorId);
503
+ const rows = await this.drizzle.db
504
+ .select()
505
+ .from(chatRoomBan)
506
+ .where(and(eq(chatRoomBan.roomId, roomId), isNull(chatRoomBan.liftedAt), or(isNull(chatRoomBan.expiresAt), gt(chatRoomBan.expiresAt, new Date()))))
507
+ .orderBy(desc(chatRoomBan.createdAt));
508
+ const latest = new Map();
509
+ for (const row of rows) {
510
+ if (!latest.has(row.userId)) {
511
+ latest.set(row.userId, row);
512
+ }
513
+ }
514
+ return [...latest.values()].map((row) => serializeRow(row, { dateFields: ['createdAt', 'expiresAt', 'liftedAt'] }));
77
515
  }
78
- async getRoomMessages({ roomId, limit = 50, before, viewerId, }) {
79
- const conditions = [eq(chatMessage.roomId, roomId), eq(chatMessage.isDeleted, false)];
80
- if (before)
516
+ async getRoomMessages({ roomId, limit = DEFAULT_MESSAGE_LIMIT, before, viewerId, }) {
517
+ await this.verifyRoomAccess(roomId, viewerId);
518
+ const conditions = [
519
+ eq(chatMessage.roomId, roomId),
520
+ eq(chatMessage.isDeleted, false),
521
+ isNull(chatMessage.deletedAt),
522
+ ];
523
+ if (before) {
81
524
  conditions.push(lt(chatMessage.createdAt, new Date(before)));
82
- await this.appendBlockFilter(conditions, viewerId);
525
+ }
526
+ await this.appendExcludedSendersFilter(conditions, viewerId);
83
527
  const messages = await this.drizzle.db
84
528
  .select()
85
529
  .from(chatMessage)
86
530
  .where(and(...conditions))
87
531
  .orderBy(desc(chatMessage.createdAt))
88
532
  .limit(limit);
89
- return messages.map(toMessage);
533
+ return messages.map(toPublicMessage);
534
+ }
535
+ async listAdminRoomMessages({ roomId, page, limit, senderId, playerId, includeDeleted, }) {
536
+ const roomWhere = roomId === GLOBAL_CHAT_ROOM_ID
537
+ ? and(eq(chatRoom.slug, GLOBAL_CHAT_ROOM_ID), isNull(chatRoom.deletedAt))
538
+ : and(eq(chatRoom.id, roomId), isNull(chatRoom.deletedAt));
539
+ const [room] = await this.drizzle.db
540
+ .select({ id: chatRoom.id })
541
+ .from(chatRoom)
542
+ .where(roomWhere)
543
+ .limit(1);
544
+ if (!room) {
545
+ throw new ChatRoomNotFoundError(roomId);
546
+ }
547
+ const where = and(roomId === GLOBAL_CHAT_ROOM_ID ? isNull(chatMessage.roomId) : eq(chatMessage.roomId, roomId), includeDeleted ? undefined : eq(chatMessage.isDeleted, false), senderId ? eq(chatMessage.userId, senderId) : undefined, playerId ? eq(player.id, playerId) : undefined);
548
+ const [rows, [{ n }]] = await Promise.all([
549
+ this.drizzle.db
550
+ .select({ message: chatMessage, playerId: player.id })
551
+ .from(chatMessage)
552
+ .leftJoin(player, eq(player.userId, chatMessage.userId))
553
+ .where(where)
554
+ .orderBy(desc(chatMessage.createdAt))
555
+ .limit(limit)
556
+ .offset(pageToOffset(page, limit)),
557
+ this.drizzle.db
558
+ .select({ n: count() })
559
+ .from(chatMessage)
560
+ .leftJoin(player, eq(player.userId, chatMessage.userId))
561
+ .where(where),
562
+ ]);
563
+ return {
564
+ items: rows.map(({ message, playerId }) => ({ ...toPublicMessage(message), playerId })),
565
+ total: Number(n),
566
+ page,
567
+ limit,
568
+ };
90
569
  }
91
- async appendBlockFilter(conditions, viewerId) {
92
- if (!viewerId)
570
+ async listAdminMessages({ page, limit, roomId, senderId, playerId, search, includeDeleted, sortOrder, }) {
571
+ const roomCondition = roomId === GLOBAL_CHAT_ROOM_ID
572
+ ? isNull(chatMessage.roomId)
573
+ : roomId
574
+ ? eq(chatMessage.roomId, roomId)
575
+ : undefined;
576
+ const where = and(eq(chatMessage.type, 'user'), roomCondition, senderId ? eq(chatMessage.userId, senderId) : undefined, playerId ? eq(player.id, playerId) : undefined, search ? ilike(chatMessage.content, `%${search}%`) : undefined, includeDeleted
577
+ ? undefined
578
+ : and(eq(chatMessage.isDeleted, false), isNull(chatMessage.deletedAt)));
579
+ const direction = sortOrder === 'asc' ? asc : desc;
580
+ const [rows, [{ n }]] = await Promise.all([
581
+ this.drizzle.db
582
+ .select({
583
+ id: chatMessage.id,
584
+ createdAt: chatMessage.createdAt,
585
+ roomId: chatMessage.roomId,
586
+ playerId: player.id,
587
+ roomName: chatRoom.name,
588
+ content: chatMessage.content,
589
+ })
590
+ .from(chatMessage)
591
+ .leftJoin(player, eq(player.userId, chatMessage.userId))
592
+ .leftJoin(chatRoom, eq(chatRoom.id, chatMessage.roomId))
593
+ .where(where)
594
+ .orderBy(direction(chatMessage.createdAt))
595
+ .limit(limit)
596
+ .offset(pageToOffset(page, limit)),
597
+ this.drizzle.db
598
+ .select({ n: count() })
599
+ .from(chatMessage)
600
+ .leftJoin(player, eq(player.userId, chatMessage.userId))
601
+ .leftJoin(chatRoom, eq(chatRoom.id, chatMessage.roomId))
602
+ .where(where),
603
+ ]);
604
+ return {
605
+ items: rows.map((row) => {
606
+ const date = row.createdAt.toISOString();
607
+ return {
608
+ id: row.id,
609
+ date,
610
+ roomId: row.roomId ?? GLOBAL_CHAT_ROOM_ID,
611
+ playerId: row.playerId,
612
+ roomName: row.roomName ?? 'Global',
613
+ content: row.content,
614
+ time: date.slice(11, 19),
615
+ };
616
+ }),
617
+ total: Number(n),
618
+ page,
619
+ limit,
620
+ };
621
+ }
622
+ async appendExcludedSendersFilter(conditions, viewerId) {
623
+ if (!viewerId) {
93
624
  return;
94
- const blocked = await this.blockedIdsFor(viewerId);
95
- if (blocked.size > 0)
96
- conditions.push(notInArray(chatMessage.userId, [...blocked]));
625
+ }
626
+ const excluded = await this.excludedSenderIdsFor(viewerId);
627
+ if (excluded.size > 0) {
628
+ conditions.push(notInArray(chatMessage.userId, [...excluded]));
629
+ }
97
630
  }
98
631
  async sendRoomMessage({ userId, username, roomId, content, }) {
99
- findOneOrThrow(await this.drizzle.db.select().from(chatRoom).where(eq(chatRoom.id, roomId)), new ChatRoomNotFoundError(roomId));
632
+ // TODO: check RG_SELF_EXCLUSION_SERVICE before send (sealed token not yet implemented)
633
+ const room = await this.verifyRoomAccess(roomId, userId);
634
+ await this.moderation.assertCanSend(userId, roomId, room.isPublic);
100
635
  const safeContent = gateContent(content);
101
- const displayName = await this.resolveDisplayName(userId, username);
636
+ const resolvedUsername = await this.resolveUsername(userId, username);
102
637
  const [record] = await this.drizzle.db
103
638
  .insert(chatMessage)
104
639
  .values({
105
640
  roomId,
106
641
  userId,
107
- username: displayName,
642
+ username: resolvedUsername,
108
643
  content: safeContent,
109
644
  })
110
645
  .returning();
@@ -113,39 +648,54 @@ export class ChatService {
113
648
  roomId,
114
649
  userId,
115
650
  });
116
- const message = toMessage(record);
117
- void this.transport.publish(chatChannel(roomId), message);
651
+ const message = toPublicMessage(record);
652
+ publishChatEvent(this.transport, roomId, message);
118
653
  return message;
119
654
  }
120
- async deleteMessage(id, userId) {
655
+ async deleteMessage(id, userId, meta) {
121
656
  const message = findOneOrThrow(await this.drizzle.db.select().from(chatMessage).where(eq(chatMessage.id, id)), new ChatMessageNotFoundError(id));
122
- assertOwnership(message.userId, userId, new ChatMessageOwnershipError(id));
123
- await this.drizzle.db
124
- .update(chatMessage)
125
- .set({ isDeleted: true })
126
- .where(eq(chatMessage.id, id));
127
- return { success: true };
657
+ let roomId = message.roomId;
658
+ if (roomId === null) {
659
+ const [globalRoom] = await this.drizzle.db
660
+ .select({ id: chatRoom.id })
661
+ .from(chatRoom)
662
+ .where(and(eq(chatRoom.slug, '__global'), isNull(chatRoom.deletedAt)))
663
+ .limit(1);
664
+ if (!globalRoom) {
665
+ throw new ChatRoomNotFoundError('__global');
666
+ }
667
+ roomId = globalRoom.id;
668
+ }
669
+ await this.assertRoomModerator(roomId, userId);
670
+ return this.moderation.deleteMessage(id, userId, meta, 'player');
128
671
  }
129
- async getGlobalMessages(limit = 50, viewerId) {
130
- const conditions = [isNull(chatMessage.roomId), eq(chatMessage.isDeleted, false)];
131
- await this.appendBlockFilter(conditions, viewerId);
672
+ async getGlobalMessages(limit = DEFAULT_MESSAGE_LIMIT, viewerId) {
673
+ await this.verifyGlobalAccess(viewerId);
674
+ const conditions = [
675
+ isNull(chatMessage.roomId),
676
+ eq(chatMessage.isDeleted, false),
677
+ isNull(chatMessage.deletedAt),
678
+ ];
679
+ await this.appendExcludedSendersFilter(conditions, viewerId);
132
680
  const messages = await this.drizzle.db
133
681
  .select()
134
682
  .from(chatMessage)
135
683
  .where(and(...conditions))
136
684
  .orderBy(desc(chatMessage.createdAt))
137
685
  .limit(limit);
138
- return messages.map(toMessage);
686
+ return messages.map(toPublicMessage);
139
687
  }
140
688
  async sendGlobalMessage(userId, username, content) {
689
+ // TODO: check RG_SELF_EXCLUSION_SERVICE before send (sealed token not yet implemented)
690
+ await this.moderation.assertCanSend(userId, null);
141
691
  const safeContent = gateContent(content);
142
- const displayName = await this.resolveDisplayName(userId, username);
692
+ const resolvedUsername = await this.resolveUsername(userId, username);
143
693
  const [record] = await this.drizzle.db
144
694
  .insert(chatMessage)
145
695
  .values({
146
696
  roomId: null,
147
697
  userId,
148
- username: displayName,
698
+ username: resolvedUsername,
149
699
  content: safeContent,
150
700
  })
151
701
  .returning();
@@ -154,39 +704,492 @@ export class ChatService {
154
704
  roomId: null,
155
705
  userId,
156
706
  });
157
- const message = toMessage(record);
158
- void this.transport.publish(chatChannel(null), message);
707
+ const message = toPublicMessage(record);
708
+ publishChatEvent(this.transport, null, message);
159
709
  return message;
160
710
  }
161
- async listBlockedUsers(blockerId) {
162
- const rows = await this.drizzle.db
163
- .select({ blockedId: chatUserBlock.blockedId, createdAt: chatUserBlock.createdAt })
164
- .from(chatUserBlock)
165
- .where(eq(chatUserBlock.blockerId, blockerId))
166
- .orderBy(desc(chatUserBlock.createdAt));
167
- return rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] }));
711
+ async listBlockedUsers({ blockerId, page, limit, sortBy, sortOrder, }) {
712
+ const dir = sortOrder === 'asc' ? asc : desc;
713
+ const col = BLOCKED_USER_SORT_COLUMNS[sortBy];
714
+ const where = and(eq(chatUserBlock.blockerId, blockerId), isNull(chatUserBlock.removedAt));
715
+ const [rows, [{ n }]] = await Promise.all([
716
+ this.drizzle.db
717
+ .select({ blockedId: chatUserBlock.blockedId, createdAt: chatUserBlock.createdAt })
718
+ .from(chatUserBlock)
719
+ .where(where)
720
+ .orderBy(dir(col))
721
+ .limit(limit)
722
+ .offset(pageToOffset(page, limit)),
723
+ this.drizzle.db.select({ n: count() }).from(chatUserBlock).where(where),
724
+ ]);
725
+ const usernameByUserId = await this.usernamesFor(rows.map((r) => r.blockedId));
726
+ return {
727
+ items: rows.map((r) => serializeRow({ ...r, username: usernameByUserId.get(r.blockedId) ?? null }, { dateFields: ['createdAt'] })),
728
+ total: Number(n),
729
+ page,
730
+ limit,
731
+ };
168
732
  }
169
- async blockUser(blockerId, blockedId) {
170
- if (blockerId === blockedId)
733
+ /** Backoffice-only, site-wide: every active block relationship, not just the caller's. */
734
+ async adminListBlockedUsers({ page, limit, sortBy, sortOrder, }) {
735
+ const dir = sortOrder === 'asc' ? asc : desc;
736
+ const col = BLOCKED_USER_SORT_COLUMNS[sortBy];
737
+ const where = isNull(chatUserBlock.removedAt);
738
+ const [rows, [{ n }]] = await Promise.all([
739
+ this.drizzle.db
740
+ .select({
741
+ blockerId: chatUserBlock.blockerId,
742
+ blockedId: chatUserBlock.blockedId,
743
+ createdAt: chatUserBlock.createdAt,
744
+ })
745
+ .from(chatUserBlock)
746
+ .where(where)
747
+ .orderBy(dir(col))
748
+ .limit(limit)
749
+ .offset(pageToOffset(page, limit)),
750
+ this.drizzle.db.select({ n: count() }).from(chatUserBlock).where(where),
751
+ ]);
752
+ return {
753
+ items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
754
+ total: Number(n),
755
+ page,
756
+ limit,
757
+ };
758
+ }
759
+ async blockUser(blockerId, blockedId, meta) {
760
+ if (blockerId === blockedId) {
171
761
  throw new ChatSelfBlockError();
172
- // Idempotent: re-blocking is a no-op, so only the first block emits an event.
762
+ }
763
+ // Idempotent: re-blocking while already (actively) blocked is a no-op, so only
764
+ // the first block emits an event. The pair unique index is partial (removedAt
765
+ // IS NULL), so a block after a prior unblock conflicts with nothing and inserts
766
+ // a fresh active row - the removed row stays as history. No explicit conflict
767
+ // target: this table has exactly one unique constraint (the partial pair index).
768
+ // Any active friendship dissolves on the same tx as the block insert, so a block
769
+ // can never leave a friendship (and the blocked user) still reachable from
770
+ // /social/friends.
771
+ const { inserted, dissolvedFriendship } = await this.drizzle.db.transaction((tx) => withAdvisoryXactLock(tx, chatBlockLockKey(blockerId, blockedId), async () => {
772
+ const rows = await tx
773
+ .insert(chatUserBlock)
774
+ .values({ blockerId, blockedId })
775
+ .onConflictDoNothing()
776
+ .returning();
777
+ const dissolved = rows.length > 0
778
+ ? ((await this.socialCommands?.dissolveFriendshipOnBlock(tx, blockerId, blockedId)) ??
779
+ null)
780
+ : null;
781
+ return { inserted: rows, dissolvedFriendship: dissolved };
782
+ }));
783
+ if (dissolvedFriendship) {
784
+ this.events.emit('social.friendship.removed', dissolvedFriendship);
785
+ }
786
+ if (inserted.length > 0) {
787
+ this.events.emit('chat.user.blocked', {
788
+ blockerId,
789
+ actorPlayerId: await this.identityReader.getPlayerIdByUserIdSafe(blockerId),
790
+ blockedId,
791
+ playerId: await this.identityReader.getPlayerIdByUserIdSafe(blockedId),
792
+ ip: meta?.ip ?? null,
793
+ userAgent: meta?.userAgent ?? null,
794
+ });
795
+ }
796
+ return { success: true };
797
+ }
798
+ async unblockUser(blockerId, blockedId, meta) {
799
+ // Soft-delete: the partial unique index guarantees at most one active (removedAt
800
+ // IS NULL) row per pair, so this is that row, or no-op if already unblocked.
801
+ const removed = await this.drizzle.db.transaction((tx) => withAdvisoryXactLock(tx, chatBlockLockKey(blockerId, blockedId), () => tx
802
+ .update(chatUserBlock)
803
+ .set({ removedAt: new Date() })
804
+ .where(and(eq(chatUserBlock.blockerId, blockerId), eq(chatUserBlock.blockedId, blockedId), isNull(chatUserBlock.removedAt)))
805
+ .returning()));
806
+ if (removed.length > 0) {
807
+ this.events.emit('chat.user.unblocked', {
808
+ blockerId,
809
+ actorPlayerId: await this.identityReader.getPlayerIdByUserIdSafe(blockerId),
810
+ blockedId,
811
+ playerId: await this.identityReader.getPlayerIdByUserIdSafe(blockedId),
812
+ ip: meta?.ip ?? null,
813
+ userAgent: meta?.userAgent ?? null,
814
+ });
815
+ }
816
+ return { success: true };
817
+ }
818
+ async listIgnoredUsers({ ignorerId, page, limit, sortBy, sortOrder, }) {
819
+ const dir = sortOrder === 'asc' ? asc : desc;
820
+ const col = IGNORED_USER_SORT_COLUMNS[sortBy];
821
+ const where = and(eq(chatUserIgnore.ignorerId, ignorerId), isNull(chatUserIgnore.removedAt));
822
+ const [rows, [{ n }]] = await Promise.all([
823
+ this.drizzle.db
824
+ .select({ ignoredId: chatUserIgnore.ignoredId, createdAt: chatUserIgnore.createdAt })
825
+ .from(chatUserIgnore)
826
+ .where(where)
827
+ .orderBy(dir(col))
828
+ .limit(limit)
829
+ .offset(pageToOffset(page, limit)),
830
+ this.drizzle.db.select({ n: count() }).from(chatUserIgnore).where(where),
831
+ ]);
832
+ const usernameByUserId = await this.usernamesFor(rows.map((r) => r.ignoredId));
833
+ return {
834
+ items: rows.map((r) => serializeRow({ ...r, username: usernameByUserId.get(r.ignoredId) ?? null }, { dateFields: ['createdAt'] })),
835
+ total: Number(n),
836
+ page,
837
+ limit,
838
+ };
839
+ }
840
+ /** Backoffice-only, site-wide: every active ignore relationship, not just the caller's. */
841
+ async adminListIgnoredUsers({ page, limit, sortBy, sortOrder, }) {
842
+ const dir = sortOrder === 'asc' ? asc : desc;
843
+ const col = IGNORED_USER_SORT_COLUMNS[sortBy];
844
+ const where = isNull(chatUserIgnore.removedAt);
845
+ const [rows, [{ n }]] = await Promise.all([
846
+ this.drizzle.db
847
+ .select({
848
+ ignorerId: chatUserIgnore.ignorerId,
849
+ ignoredId: chatUserIgnore.ignoredId,
850
+ createdAt: chatUserIgnore.createdAt,
851
+ })
852
+ .from(chatUserIgnore)
853
+ .where(where)
854
+ .orderBy(dir(col))
855
+ .limit(limit)
856
+ .offset(pageToOffset(page, limit)),
857
+ this.drizzle.db.select({ n: count() }).from(chatUserIgnore).where(where),
858
+ ]);
859
+ return {
860
+ items: rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] })),
861
+ total: Number(n),
862
+ page,
863
+ limit,
864
+ };
865
+ }
866
+ async ignoreUser(ignorerId, ignoredId, meta) {
867
+ if (ignorerId === ignoredId) {
868
+ throw new ChatSelfIgnoreError();
869
+ }
870
+ // Idempotent + soft-delete-aware - see blockUser's comment, same pattern.
173
871
  const inserted = await this.drizzle.db
174
- .insert(chatUserBlock)
175
- .values({ blockerId, blockedId })
176
- .onConflictDoNothing({ target: [chatUserBlock.blockerId, chatUserBlock.blockedId] })
872
+ .insert(chatUserIgnore)
873
+ .values({ ignorerId, ignoredId })
874
+ .onConflictDoNothing()
177
875
  .returning();
178
- if (inserted.length > 0)
179
- this.events.emit('chat.user.blocked', { blockerId, blockedId });
876
+ if (inserted.length > 0) {
877
+ this.events.emit('chat.user.ignored', {
878
+ ignorerId,
879
+ actorPlayerId: await this.identityReader.getPlayerIdByUserIdSafe(ignorerId),
880
+ ignoredId,
881
+ playerId: await this.identityReader.getPlayerIdByUserIdSafe(ignoredId),
882
+ ip: meta?.ip ?? null,
883
+ userAgent: meta?.userAgent ?? null,
884
+ });
885
+ }
180
886
  return { success: true };
181
887
  }
182
- async unblockUser(blockerId, blockedId) {
888
+ async unignoreUser(ignorerId, ignoredId, meta) {
889
+ // Soft-delete - see unblockUser's comment, same pattern.
183
890
  const removed = await this.drizzle.db
184
- .delete(chatUserBlock)
185
- .where(and(eq(chatUserBlock.blockerId, blockerId), eq(chatUserBlock.blockedId, blockedId)))
891
+ .update(chatUserIgnore)
892
+ .set({ removedAt: new Date() })
893
+ .where(and(eq(chatUserIgnore.ignorerId, ignorerId), eq(chatUserIgnore.ignoredId, ignoredId), isNull(chatUserIgnore.removedAt)))
186
894
  .returning();
187
- if (removed.length > 0)
188
- this.events.emit('chat.user.unblocked', { blockerId, blockedId });
895
+ if (removed.length > 0) {
896
+ this.events.emit('chat.user.unignored', {
897
+ ignorerId,
898
+ actorPlayerId: await this.identityReader.getPlayerIdByUserIdSafe(ignorerId),
899
+ ignoredId,
900
+ playerId: await this.identityReader.getPlayerIdByUserIdSafe(ignoredId),
901
+ ip: meta?.ip ?? null,
902
+ userAgent: meta?.userAgent ?? null,
903
+ });
904
+ }
905
+ return { success: true };
906
+ }
907
+ async getExcludedUserIds(viewerId) {
908
+ return [...(await this.excludedSenderIdsFor(viewerId))];
909
+ }
910
+ async getBlockedUserIds(viewerId) {
911
+ return [...(await this.blockedIdsFor(viewerId))];
912
+ }
913
+ async isBlocked(tx, blockerId, blockedId) {
914
+ const [row] = await tx
915
+ .select({ blockedId: chatUserBlock.blockedId })
916
+ .from(chatUserBlock)
917
+ .where(and(eq(chatUserBlock.blockerId, blockerId), eq(chatUserBlock.blockedId, blockedId), isNull(chatUserBlock.removedAt)))
918
+ .limit(1);
919
+ return row !== undefined;
920
+ }
921
+ async createRoom({ name, slug, category, actorId, ip, userAgent, }) {
922
+ let record;
923
+ try {
924
+ record = await this.drizzle.db.transaction(async (tx) => {
925
+ const [existing] = await tx
926
+ .select({ id: chatRoom.id })
927
+ .from(chatRoom)
928
+ .where(eq(chatRoom.slug, slug))
929
+ .limit(1);
930
+ if (existing) {
931
+ throw new ChatRoomSlugConflictError();
932
+ }
933
+ const [created] = await tx
934
+ .insert(chatRoom)
935
+ .values({ name, slug, category, joinCode: generateJoinCode() })
936
+ .returning();
937
+ await tx.insert(chatRoomConfiguration).values({ roomId: created.id });
938
+ if (actorId) {
939
+ await tx
940
+ .insert(chatRoomMember)
941
+ .values({ roomId: created.id, userId: actorId, role: 'owner' });
942
+ }
943
+ return created;
944
+ });
945
+ }
946
+ catch (error) {
947
+ if (isUniqueConstraintViolation(error)) {
948
+ throw new ChatRoomSlugConflictError();
949
+ }
950
+ throw error;
951
+ }
952
+ this.events.emit('chat.room.created', {
953
+ roomId: record.id,
954
+ name,
955
+ slug,
956
+ category,
957
+ actorId,
958
+ ip: ip ?? null,
959
+ userAgent: userAgent ?? null,
960
+ });
961
+ return toRoom(record);
962
+ }
963
+ async updateRoom({ id, name, slug, category, actorId, ip, userAgent, }) {
964
+ const existing = findOneOrThrow(await this.drizzle.db
965
+ .select()
966
+ .from(chatRoom)
967
+ .where(and(eq(chatRoom.id, id), isNull(chatRoom.deletedAt)))
968
+ .limit(1), new ChatRoomNotFoundError(id));
969
+ if (slug !== undefined && slug !== existing.slug && existing.slug === GLOBAL_CHAT_ROOM_ID) {
970
+ throw new ChatRoomProtectedError();
971
+ }
972
+ if (slug !== undefined) {
973
+ const [clash] = await this.drizzle.db
974
+ .select({ id: chatRoom.id })
975
+ .from(chatRoom)
976
+ .where(and(eq(chatRoom.slug, slug), ne(chatRoom.id, id)))
977
+ .limit(1);
978
+ if (clash) {
979
+ throw new ChatRoomSlugConflictError();
980
+ }
981
+ }
982
+ const patch = {};
983
+ if (name !== undefined) {
984
+ patch.name = name;
985
+ }
986
+ if (slug !== undefined) {
987
+ patch.slug = slug;
988
+ }
989
+ if (category !== undefined) {
990
+ patch.category = category;
991
+ }
992
+ let updated;
993
+ try {
994
+ updated = findOneOrThrow(await this.drizzle.db
995
+ .update(chatRoom)
996
+ .set(patch)
997
+ .where(and(eq(chatRoom.id, id), isNull(chatRoom.deletedAt)))
998
+ .returning(), new ChatRoomNotFoundError(id));
999
+ }
1000
+ catch (error) {
1001
+ if (isUniqueConstraintViolation(error)) {
1002
+ throw new ChatRoomSlugConflictError();
1003
+ }
1004
+ throw error;
1005
+ }
1006
+ this.events.emit('chat.room.updated', {
1007
+ roomId: id,
1008
+ actorId,
1009
+ before: { name: existing.name, slug: existing.slug, category: existing.category },
1010
+ after: { name: updated.name, slug: updated.slug, category: updated.category },
1011
+ ip: ip ?? null,
1012
+ userAgent: userAgent ?? null,
1013
+ });
1014
+ return toRoom(updated);
1015
+ }
1016
+ async updatePrivateRoom({ id, name, actorId, ip, userAgent, }) {
1017
+ const room = findOneOrThrow(await this.drizzle.db
1018
+ .select()
1019
+ .from(chatRoom)
1020
+ .where(and(eq(chatRoom.id, id), eq(chatRoom.isPublic, false), isNull(chatRoom.deletedAt)))
1021
+ .limit(1), new ChatRoomNotFoundError(id));
1022
+ if (!room.creatorId) {
1023
+ throw new ChatRoomOwnershipError();
1024
+ }
1025
+ assertOwnership(room.creatorId, actorId, new ChatRoomOwnershipError());
1026
+ return this.updateRoom({ id, name, actorId, ip, userAgent });
1027
+ }
1028
+ async deletePrivateRoom({ roomId, userId, ip, userAgent, }) {
1029
+ const room = findOneOrThrow(await this.drizzle.db
1030
+ .select()
1031
+ .from(chatRoom)
1032
+ .where(and(eq(chatRoom.id, roomId), eq(chatRoom.isPublic, false), isNull(chatRoom.deletedAt)))
1033
+ .limit(1), new ChatRoomNotFoundError(roomId));
1034
+ if (!room.creatorId) {
1035
+ throw new ChatRoomOwnershipError();
1036
+ }
1037
+ assertOwnership(room.creatorId, userId, new ChatRoomOwnershipError());
1038
+ const deletedAt = new Date();
1039
+ await this.drizzle.db.update(chatRoom).set({ deletedAt }).where(eq(chatRoom.id, roomId));
1040
+ this.events.emit('chat.private_room.deleted', {
1041
+ roomId,
1042
+ creatorId: userId,
1043
+ playerId: await this.identityReader.getPlayerIdByUserIdSafe(userId),
1044
+ before: { name: room.name, slug: room.slug, category: room.category },
1045
+ after: { deletedAt: deletedAt.toISOString() },
1046
+ ip: ip ?? null,
1047
+ userAgent: userAgent ?? null,
1048
+ });
1049
+ return { success: true };
1050
+ }
1051
+ async deleteRoom(id, actorId, meta) {
1052
+ const existing = findOneOrThrow(await this.drizzle.db
1053
+ .select({ slug: chatRoom.slug })
1054
+ .from(chatRoom)
1055
+ .where(and(eq(chatRoom.id, id), isNull(chatRoom.deletedAt)))
1056
+ .limit(1), new ChatRoomNotFoundError(id));
1057
+ if (existing.slug === GLOBAL_CHAT_ROOM_ID) {
1058
+ throw new ChatRoomProtectedError();
1059
+ }
1060
+ const deleted = findOneOrThrow(await this.drizzle.db
1061
+ .update(chatRoom)
1062
+ .set({ deletedAt: new Date() })
1063
+ .where(and(eq(chatRoom.id, id), isNull(chatRoom.deletedAt)))
1064
+ .returning({
1065
+ id: chatRoom.id,
1066
+ name: chatRoom.name,
1067
+ slug: chatRoom.slug,
1068
+ category: chatRoom.category,
1069
+ }), new ChatRoomNotFoundError(id));
1070
+ this.events.emit('chat.room.deleted', {
1071
+ roomId: id,
1072
+ actorId,
1073
+ before: { name: deleted.name, slug: deleted.slug, category: deleted.category },
1074
+ ip: meta?.ip ?? null,
1075
+ userAgent: meta?.userAgent ?? null,
1076
+ });
189
1077
  return { success: true };
190
1078
  }
1079
+ async createPrivateRoom({ userId, name, ip, userAgent, }) {
1080
+ const playerId = await this.identityReader.getPlayerIdByUserIdSafe(userId);
1081
+ for (let attempt = 1; attempt <= 3; attempt++) {
1082
+ const joinCode = generateJoinCode();
1083
+ const slug = generatePrivateRoomSlug(joinCode);
1084
+ try {
1085
+ const record = await this.drizzle.db.transaction((t) => withAdvisoryXactLock(t, userId, async () => {
1086
+ const [{ total }] = await t
1087
+ .select({ total: count() })
1088
+ .from(chatRoom)
1089
+ .where(and(eq(chatRoom.creatorId, userId), eq(chatRoom.isPublic, false), isNull(chatRoom.deletedAt)));
1090
+ if (Number(total) >= MAX_PRIVATE_ROOMS_PER_PLAYER) {
1091
+ throw new ChatRoomLimitReachedError();
1092
+ }
1093
+ const [room] = await t
1094
+ .insert(chatRoom)
1095
+ .values({
1096
+ name,
1097
+ slug,
1098
+ category: 'private-channels',
1099
+ isPublic: false,
1100
+ joinCode,
1101
+ creatorId: userId,
1102
+ })
1103
+ .returning();
1104
+ await t.insert(chatRoomConfiguration).values({ roomId: room.id });
1105
+ await t
1106
+ .insert(chatRoomMember)
1107
+ .values({ roomId: room.id, userId, role: 'owner' })
1108
+ .onConflictDoNothing();
1109
+ return room;
1110
+ }));
1111
+ this.events.emit('chat.private_room.created', {
1112
+ roomId: record.id,
1113
+ creatorId: userId,
1114
+ playerId,
1115
+ ip: ip ?? null,
1116
+ userAgent: userAgent ?? null,
1117
+ });
1118
+ return toRoom(record);
1119
+ }
1120
+ catch (e) {
1121
+ if (attempt < 3 && isUniqueConstraintViolation(e)) {
1122
+ continue;
1123
+ }
1124
+ throw e;
1125
+ }
1126
+ }
1127
+ // unreachable: loop returns or rethrows on every iteration
1128
+ throw new ChatRoomSlugConflictError();
1129
+ }
1130
+ async postSystemMessage(args) {
1131
+ const db = args.tx ?? this.drizzle.db;
1132
+ const [record] = await db
1133
+ .insert(chatMessage)
1134
+ .values({
1135
+ roomId: args.roomId,
1136
+ userId: args.actorId,
1137
+ username: args.username,
1138
+ content: '',
1139
+ type: 'system',
1140
+ metadata: args.metadata,
1141
+ })
1142
+ .returning();
1143
+ const msg = toSystemMessage(record);
1144
+ // Only auto-publish when this call owns the write (no caller-managed transaction).
1145
+ // When `tx` is passed, the caller's transaction hasn't committed yet - publishing
1146
+ // here would leak a message to clients before (or even if) it actually commits.
1147
+ // The caller must publish itself after its transaction resolves.
1148
+ if (!args.tx) {
1149
+ publishChatEvent(this.transport, args.roomId, msg);
1150
+ }
1151
+ return msg;
1152
+ }
1153
+ async updateSystemMessage(args) {
1154
+ const db = args.tx ?? this.drizzle.db;
1155
+ const [record] = await db
1156
+ .update(chatMessage)
1157
+ .set({ metadata: args.metadata })
1158
+ .where(eq(chatMessage.id, args.messageId))
1159
+ .returning();
1160
+ const message = toSystemMessage(record);
1161
+ if (!args.tx) {
1162
+ publishChatEvent(this.transport, message.roomId, message);
1163
+ }
1164
+ return message;
1165
+ }
1166
+ async listRoomMembers({ roomId, viewerId }) {
1167
+ await this.verifyRoomAccess(roomId, viewerId);
1168
+ const canSeeAdminUsers = viewerId ? await this.canSeeAdminUsers(viewerId) : false;
1169
+ const members = await this.drizzle.db
1170
+ .select({
1171
+ userId: chatRoomMember.userId,
1172
+ role: chatRoomMember.role,
1173
+ joinedAt: chatRoomMember.joinedAt,
1174
+ username: user.name,
1175
+ })
1176
+ .from(chatRoomMember)
1177
+ .leftJoin(user, eq(user.id, chatRoomMember.userId))
1178
+ .where(and(eq(chatRoomMember.roomId, roomId), canSeeAdminUsers
1179
+ ? undefined
1180
+ : or(isNull(user.id), notInArray(user.role, ['admin', 'super-admin']))))
1181
+ .orderBy(asc(chatRoomMember.joinedAt));
1182
+ const summaries = await this.directory.lookupPlayers(members.map((m) => m.userId));
1183
+ const usernameByUserId = new Map(summaries.map((s) => [s.userId, s.username]));
1184
+ return members.map((m) => serializeRow({ ...m, username: usernameByUserId.get(m.userId) ?? m.username ?? null }, { dateFields: ['joinedAt'] }));
1185
+ }
1186
+ async canSeeAdminUsers(viewerId) {
1187
+ const [viewer] = await this.drizzle.db
1188
+ .select({ role: user.role })
1189
+ .from(user)
1190
+ .where(eq(user.id, viewerId))
1191
+ .limit(1);
1192
+ return viewer?.role === 'admin' || viewer?.role === 'super-admin';
1193
+ }
191
1194
  }
192
1195
  //# sourceMappingURL=chat.service.js.map