@openora/core 0.4.1-canary.71 → 0.4.1-canary.73

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 (196) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/__tests__/backoffice.service.int.test.js +30 -12
  3. package/dist/admin-console/__tests__/backoffice.service.int.test.js.map +1 -1
  4. package/dist/admin-console/contract/index.d.ts +4 -0
  5. package/dist/admin-console/contract/index.d.ts.map +1 -1
  6. package/dist/admin-console/contract/index.js +3 -2
  7. package/dist/admin-console/contract/index.js.map +1 -1
  8. package/dist/admin-console/plugin.d.ts +1 -0
  9. package/dist/admin-console/plugin.d.ts.map +1 -1
  10. package/dist/admin-console/router/index.d.ts +2 -0
  11. package/dist/admin-console/router/index.d.ts.map +1 -1
  12. package/dist/admin-console/service/backoffice.service.d.ts +2 -0
  13. package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
  14. package/dist/admin-console/service/backoffice.service.js +2 -0
  15. package/dist/admin-console/service/backoffice.service.js.map +1 -1
  16. package/dist/analytics/plugin.d.ts +1 -0
  17. package/dist/analytics/plugin.d.ts.map +1 -1
  18. package/dist/audit/plugin.d.ts +1 -0
  19. package/dist/audit/plugin.d.ts.map +1 -1
  20. package/dist/audit/plugin.js +6 -0
  21. package/dist/audit/plugin.js.map +1 -1
  22. package/dist/casino/gaming/plugin.d.ts +1 -0
  23. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  24. package/dist/casino/lobby/plugin.d.ts +1 -0
  25. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  26. package/dist/cms/plugin.d.ts +1 -0
  27. package/dist/cms/plugin.d.ts.map +1 -1
  28. package/dist/compliance/plugin.d.ts +1 -0
  29. package/dist/compliance/plugin.d.ts.map +1 -1
  30. package/dist/contracts/adapters/admin-user-directory.d.ts +4 -2
  31. package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
  32. package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
  33. package/dist/contracts/adapters/chat-moderation.d.ts +75 -0
  34. package/dist/contracts/adapters/chat-moderation.d.ts.map +1 -0
  35. package/dist/contracts/adapters/chat-moderation.js +3 -0
  36. package/dist/contracts/adapters/chat-moderation.js.map +1 -0
  37. package/dist/contracts/adapters/index.d.ts +2 -0
  38. package/dist/contracts/adapters/index.d.ts.map +1 -1
  39. package/dist/contracts/adapters/index.js +1 -0
  40. package/dist/contracts/adapters/index.js.map +1 -1
  41. package/dist/contracts/adapters/realtime.d.ts +9 -1
  42. package/dist/contracts/adapters/realtime.d.ts.map +1 -1
  43. package/dist/contracts/adapters/realtime.js.map +1 -1
  44. package/dist/contracts/schemas/events.d.ts +19 -4
  45. package/dist/contracts/schemas/events.d.ts.map +1 -1
  46. package/dist/contracts/schemas/events.js +12 -5
  47. package/dist/contracts/schemas/events.js.map +1 -1
  48. package/dist/engagement/chat/__tests__/chat.service.int.test.js +315 -19
  49. package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -1
  50. package/dist/engagement/chat/contract/constants.d.ts +1 -1
  51. package/dist/engagement/chat/contract/constants.d.ts.map +1 -1
  52. package/dist/engagement/chat/contract/constants.js +1 -1
  53. package/dist/engagement/chat/contract/constants.js.map +1 -1
  54. package/dist/engagement/chat/contract/index.d.ts +764 -18
  55. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  56. package/dist/engagement/chat/contract/index.js +236 -5
  57. package/dist/engagement/chat/contract/index.js.map +1 -1
  58. package/dist/engagement/chat/drizzle/migrations/0005_tranquil_gwen_stacy.sql +100 -0
  59. package/dist/engagement/chat/drizzle/migrations/0006_tiny_ultron.sql +3 -0
  60. package/dist/engagement/chat/drizzle/migrations/meta/0005_snapshot.json +1422 -0
  61. package/dist/engagement/chat/drizzle/migrations/meta/0006_snapshot.json +1456 -0
  62. package/dist/engagement/chat/drizzle/migrations/meta/_journal.json +14 -0
  63. package/dist/engagement/chat/plugin.d.ts +2 -1
  64. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  65. package/dist/engagement/chat/plugin.js +25 -13
  66. package/dist/engagement/chat/plugin.js.map +1 -1
  67. package/dist/engagement/chat/router/index.d.ts +518 -18
  68. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  69. package/dist/engagement/chat/router/index.js +140 -20
  70. package/dist/engagement/chat/router/index.js.map +1 -1
  71. package/dist/engagement/chat/schema/index.d.ts +1017 -16
  72. package/dist/engagement/chat/schema/index.d.ts.map +1 -1
  73. package/dist/engagement/chat/schema/index.js +110 -4
  74. package/dist/engagement/chat/schema/index.js.map +1 -1
  75. package/dist/engagement/chat/service/chat-ban.service.d.ts +26 -0
  76. package/dist/engagement/chat/service/chat-ban.service.d.ts.map +1 -0
  77. package/dist/engagement/chat/service/chat-ban.service.js +139 -0
  78. package/dist/engagement/chat/service/chat-ban.service.js.map +1 -0
  79. package/dist/engagement/chat/service/chat-message-moderation.service.d.ts +14 -0
  80. package/dist/engagement/chat/service/chat-message-moderation.service.d.ts.map +1 -0
  81. package/dist/engagement/chat/service/chat-message-moderation.service.js +48 -0
  82. package/dist/engagement/chat/service/chat-message-moderation.service.js.map +1 -0
  83. package/dist/engagement/chat/service/chat-moderation.service.d.ts +30 -0
  84. package/dist/engagement/chat/service/chat-moderation.service.d.ts.map +1 -0
  85. package/dist/engagement/chat/service/chat-moderation.service.js +40 -0
  86. package/dist/engagement/chat/service/chat-moderation.service.js.map +1 -0
  87. package/dist/engagement/chat/service/chat-mute.service.d.ts +26 -0
  88. package/dist/engagement/chat/service/chat-mute.service.d.ts.map +1 -0
  89. package/dist/engagement/chat/service/chat-mute.service.js +143 -0
  90. package/dist/engagement/chat/service/chat-mute.service.js.map +1 -0
  91. package/dist/engagement/chat/service/chat-room-ban.service.d.ts +29 -0
  92. package/dist/engagement/chat/service/chat-room-ban.service.d.ts.map +1 -0
  93. package/dist/engagement/chat/service/chat-room-ban.service.js +105 -0
  94. package/dist/engagement/chat/service/chat-room-ban.service.js.map +1 -0
  95. package/dist/engagement/chat/service/chat-room-membership.service.d.ts +72 -0
  96. package/dist/engagement/chat/service/chat-room-membership.service.d.ts.map +1 -0
  97. package/dist/engagement/chat/service/chat-room-membership.service.js +176 -0
  98. package/dist/engagement/chat/service/chat-room-membership.service.js.map +1 -0
  99. package/dist/engagement/chat/service/chat-room-mute.service.d.ts +25 -0
  100. package/dist/engagement/chat/service/chat-room-mute.service.d.ts.map +1 -0
  101. package/dist/engagement/chat/service/chat-room-mute.service.js +89 -0
  102. package/dist/engagement/chat/service/chat-room-mute.service.js.map +1 -0
  103. package/dist/engagement/chat/service/chat.service.d.ts +348 -61
  104. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  105. package/dist/engagement/chat/service/chat.service.js +460 -194
  106. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  107. package/dist/engagement/chat/service/errors/chat-moderation.errors.d.ts +21 -0
  108. package/dist/engagement/chat/service/errors/chat-moderation.errors.d.ts.map +1 -0
  109. package/dist/engagement/chat/service/errors/chat-moderation.errors.js +31 -0
  110. package/dist/engagement/chat/service/errors/chat-moderation.errors.js.map +1 -0
  111. package/dist/engagement/chat-commands/contract/index.js +1 -1
  112. package/dist/engagement/chat-commands/contract/index.js.map +1 -1
  113. package/dist/engagement/chat-commands/drizzle/migrations/0001_sturdy_barracuda.sql +1 -0
  114. package/dist/engagement/chat-commands/drizzle/migrations/meta/0001_snapshot.json +83 -0
  115. package/dist/engagement/chat-commands/drizzle/migrations/meta/_journal.json +7 -0
  116. package/dist/engagement/chat-commands/plugin.d.ts +1 -0
  117. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
  118. package/dist/engagement/chat-commands/schema/index.d.ts +0 -199
  119. package/dist/engagement/chat-commands/schema/index.d.ts.map +1 -1
  120. package/dist/engagement/chat-commands/schema/index.js +1 -19
  121. package/dist/engagement/chat-commands/schema/index.js.map +1 -1
  122. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +15 -1
  123. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -1
  124. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +1 -0
  125. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -1
  126. package/dist/engagement/chat-commands/service/chat-commands.service.js +38 -3
  127. package/dist/engagement/chat-commands/service/chat-commands.service.js.map +1 -1
  128. package/dist/engagement/notifications/plugin.d.ts +1 -0
  129. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  130. package/dist/engagement/social/plugin.d.ts +1 -0
  131. package/dist/engagement/social/plugin.d.ts.map +1 -1
  132. package/dist/engagement/social-transfers/plugin.d.ts +1 -0
  133. package/dist/engagement/social-transfers/plugin.d.ts.map +1 -1
  134. package/dist/engagement/social-transfers/schema/index.d.ts +1 -2
  135. package/dist/engagement/social-transfers/schema/index.d.ts.map +1 -1
  136. package/dist/engagement/social-transfers/schema/index.js +1 -2
  137. package/dist/engagement/social-transfers/schema/index.js.map +1 -1
  138. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js +19 -0
  139. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js.map +1 -1
  140. package/dist/iam/plugin.d.ts +1 -0
  141. package/dist/iam/plugin.d.ts.map +1 -1
  142. package/dist/iam/seed/data/default-admin-roles.d.ts.map +1 -1
  143. package/dist/iam/seed/data/default-admin-roles.js +3 -0
  144. package/dist/iam/seed/data/default-admin-roles.js.map +1 -1
  145. package/dist/pam/identity/__tests__/admin-user-directory.int.test.js +33 -3
  146. package/dist/pam/identity/__tests__/admin-user-directory.int.test.js.map +1 -1
  147. package/dist/pam/identity/admin-user-directory.d.ts +12 -0
  148. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  149. package/dist/pam/identity/admin-user-directory.js +25 -25
  150. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  151. package/dist/pam/identity/plugin.d.ts +1 -0
  152. package/dist/pam/identity/plugin.d.ts.map +1 -1
  153. package/dist/pam/player-management/__tests__/player.service.int.test.js +4 -0
  154. package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -1
  155. package/dist/pam/player-management/plugin.d.ts +1 -0
  156. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  157. package/dist/pam/player-note/plugin.d.ts +1 -0
  158. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  159. package/dist/pam/profile/plugin.d.ts +1 -0
  160. package/dist/pam/profile/plugin.d.ts.map +1 -1
  161. package/dist/pam/tag/plugin.d.ts +1 -0
  162. package/dist/pam/tag/plugin.d.ts.map +1 -1
  163. package/dist/server/auth/permissions.d.ts +12 -12
  164. package/dist/server/auth/permissions.js +2 -2
  165. package/dist/server/auth/permissions.js.map +1 -1
  166. package/dist/server/kernel/__tests__/realtime-transport.test.js +7 -0
  167. package/dist/server/kernel/__tests__/realtime-transport.test.js.map +1 -1
  168. package/dist/server/kernel/orpc-error-map.d.ts.map +1 -1
  169. package/dist/server/kernel/orpc-error-map.js +4 -1
  170. package/dist/server/kernel/orpc-error-map.js.map +1 -1
  171. package/dist/server/kernel/realtime-transport.d.ts +3 -1
  172. package/dist/server/kernel/realtime-transport.d.ts.map +1 -1
  173. package/dist/server/kernel/realtime-transport.js +22 -4
  174. package/dist/server/kernel/realtime-transport.js.map +1 -1
  175. package/dist/server/runtime/core-token-catalog.d.ts +1 -0
  176. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
  177. package/dist/server/runtime/core-token-catalog.js +2 -1
  178. package/dist/server/runtime/core-token-catalog.js.map +1 -1
  179. package/dist/testing/realtime-transport-conformance.d.ts.map +1 -1
  180. package/dist/testing/realtime-transport-conformance.js +4 -0
  181. package/dist/testing/realtime-transport-conformance.js.map +1 -1
  182. package/dist/wallet/__tests__/wallet.service.int.test.js +19 -2
  183. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
  184. package/dist/wallet/contract/index.d.ts +2 -0
  185. package/dist/wallet/contract/index.d.ts.map +1 -1
  186. package/dist/wallet/contract/index.js +1 -0
  187. package/dist/wallet/contract/index.js.map +1 -1
  188. package/dist/wallet/plugin.d.ts +1 -0
  189. package/dist/wallet/plugin.d.ts.map +1 -1
  190. package/dist/wallet/router/index.d.ts +1 -0
  191. package/dist/wallet/router/index.d.ts.map +1 -1
  192. package/dist/wallet/service/wallet.service.d.ts +1 -0
  193. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  194. package/dist/wallet/service/wallet.service.js +1 -0
  195. package/dist/wallet/service/wallet.service.js.map +1 -1
  196. package/package.json +1 -1
@@ -20,7 +20,7 @@ export declare const statement: {
20
20
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
21
21
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
22
22
  readonly 'chat-command': readonly ["view", "update"];
23
- readonly 'chat-moderation': readonly ["view"];
23
+ readonly 'chat-moderation': readonly ["view", "moderate"];
24
24
  };
25
25
  export declare const ac: {
26
26
  newRole<const TRoleStatements extends import("better-auth/plugins/access").Statements>(statements: import("better-auth/plugins/access").RoleInput<{
@@ -45,7 +45,7 @@ export declare const ac: {
45
45
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
46
46
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
47
47
  readonly 'chat-command': readonly ["view", "update"];
48
- readonly 'chat-moderation': readonly ["view"];
48
+ readonly 'chat-moderation': readonly ["view", "moderate"];
49
49
  }, TRoleStatements>): import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<TRoleStatements>, {
50
50
  readonly player: readonly ["view", "update", "ban", "adjust-balance"];
51
51
  readonly transaction: readonly ["view", "refund"];
@@ -68,7 +68,7 @@ export declare const ac: {
68
68
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
69
69
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
70
70
  readonly 'chat-command': readonly ["view", "update"];
71
- readonly 'chat-moderation': readonly ["view"];
71
+ readonly 'chat-moderation': readonly ["view", "moderate"];
72
72
  }>;
73
73
  statements: {
74
74
  readonly player: readonly ["view", "update", "ban", "adjust-balance"];
@@ -92,7 +92,7 @@ export declare const ac: {
92
92
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
93
93
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
94
94
  readonly 'chat-command': readonly ["view", "update"];
95
- readonly 'chat-moderation': readonly ["view"];
95
+ readonly 'chat-moderation': readonly ["view", "moderate"];
96
96
  };
97
97
  };
98
98
  export declare const adminRole: import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
@@ -117,7 +117,7 @@ export declare const adminRole: import("better-auth/plugins/access").Role<import
117
117
  readonly 'chat-room': ["view", "create", "update", "delete"];
118
118
  readonly 'auto-withdrawal-config': ["view", "update"];
119
119
  readonly 'chat-command': ["view", "update"];
120
- readonly 'chat-moderation': ["view"];
120
+ readonly 'chat-moderation': ["view", "moderate"];
121
121
  }>, {
122
122
  readonly player: readonly ["view", "update", "ban", "adjust-balance"];
123
123
  readonly transaction: readonly ["view", "refund"];
@@ -140,7 +140,7 @@ export declare const adminRole: import("better-auth/plugins/access").Role<import
140
140
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
141
141
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
142
142
  readonly 'chat-command': readonly ["view", "update"];
143
- readonly 'chat-moderation': readonly ["view"];
143
+ readonly 'chat-moderation': readonly ["view", "moderate"];
144
144
  }>;
145
145
  export declare const supportRole: import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
146
146
  readonly player: ["view", "update"];
@@ -170,7 +170,7 @@ export declare const supportRole: import("better-auth/plugins/access").Role<impo
170
170
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
171
171
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
172
172
  readonly 'chat-command': readonly ["view", "update"];
173
- readonly 'chat-moderation': readonly ["view"];
173
+ readonly 'chat-moderation': readonly ["view", "moderate"];
174
174
  }>;
175
175
  export declare const contentManagerRole: import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
176
176
  readonly content: ["create", "update", "delete", "publish"];
@@ -197,7 +197,7 @@ export declare const contentManagerRole: import("better-auth/plugins/access").Ro
197
197
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
198
198
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
199
199
  readonly 'chat-command': readonly ["view", "update"];
200
- readonly 'chat-moderation': readonly ["view"];
200
+ readonly 'chat-moderation': readonly ["view", "moderate"];
201
201
  }>;
202
202
  export declare const roles: {
203
203
  readonly admin: import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
@@ -222,7 +222,7 @@ export declare const roles: {
222
222
  readonly 'chat-room': ["view", "create", "update", "delete"];
223
223
  readonly 'auto-withdrawal-config': ["view", "update"];
224
224
  readonly 'chat-command': ["view", "update"];
225
- readonly 'chat-moderation': ["view"];
225
+ readonly 'chat-moderation': ["view", "moderate"];
226
226
  }>, {
227
227
  readonly player: readonly ["view", "update", "ban", "adjust-balance"];
228
228
  readonly transaction: readonly ["view", "refund"];
@@ -245,7 +245,7 @@ export declare const roles: {
245
245
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
246
246
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
247
247
  readonly 'chat-command': readonly ["view", "update"];
248
- readonly 'chat-moderation': readonly ["view"];
248
+ readonly 'chat-moderation': readonly ["view", "moderate"];
249
249
  }>;
250
250
  readonly support: import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
251
251
  readonly player: ["view", "update"];
@@ -275,7 +275,7 @@ export declare const roles: {
275
275
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
276
276
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
277
277
  readonly 'chat-command': readonly ["view", "update"];
278
- readonly 'chat-moderation': readonly ["view"];
278
+ readonly 'chat-moderation': readonly ["view", "moderate"];
279
279
  }>;
280
280
  readonly 'content-manager': import("better-auth/plugins/access").Role<import("better-auth/plugins/access").ExactRoleStatements<{
281
281
  readonly content: ["create", "update", "delete", "publish"];
@@ -302,7 +302,7 @@ export declare const roles: {
302
302
  readonly 'chat-room': readonly ["view", "create", "update", "delete"];
303
303
  readonly 'auto-withdrawal-config': readonly ["view", "update"];
304
304
  readonly 'chat-command': readonly ["view", "update"];
305
- readonly 'chat-moderation': readonly ["view"];
305
+ readonly 'chat-moderation': readonly ["view", "moderate"];
306
306
  }>;
307
307
  };
308
308
  export type RoleName = keyof typeof roles;
@@ -21,7 +21,7 @@ export const statement = {
21
21
  'chat-room': ['view', 'create', 'update', 'delete'],
22
22
  'auto-withdrawal-config': ['view', 'update'],
23
23
  'chat-command': ['view', 'update'],
24
- 'chat-moderation': ['view'],
24
+ 'chat-moderation': ['view', 'moderate'],
25
25
  };
26
26
  export const ac = createAccessControl(statement);
27
27
  export const adminRole = ac.newRole({
@@ -46,7 +46,7 @@ export const adminRole = ac.newRole({
46
46
  'chat-room': ['view', 'create', 'update', 'delete'],
47
47
  'auto-withdrawal-config': ['view', 'update'],
48
48
  'chat-command': ['view', 'update'],
49
- 'chat-moderation': ['view'],
49
+ 'chat-moderation': ['view', 'moderate'],
50
50
  });
51
51
  export const supportRole = ac.newRole({
52
52
  player: ['view', 'update'],
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/server/auth/permissions.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,13 @@ runRealtimeTransportConformanceSuite({
12
12
  },
13
13
  });
14
14
  describe('InProcessRealtimeTransport', () => {
15
+ it('fans a removal tombstone out through the same stream', () => {
16
+ const t = new InProcessRealtimeTransport();
17
+ const got = [];
18
+ t.subscribe('c', (event) => got.push(event));
19
+ t.remove('c', { id: 'message-1', isDeleted: true });
20
+ expect(got).toEqual([{ id: 'message-1', isDeleted: true }]);
21
+ });
15
22
  it('fans a published event out to every subscriber of the channel', () => {
16
23
  const t = new InProcessRealtimeTransport();
17
24
  const a = [];
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-transport.test.js","sourceRoot":"","sources":["../../../../src/server/kernel/__tests__/realtime-transport.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime-transport.test.js","sourceRoot":"","sources":["../../../../src/server/kernel/__tests__/realtime-transport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"orpc-error-map.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/orpc-error-map.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GACT,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,uBAAuB,CAAC;AAE5B,KAAK,UAAU,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;AAElD,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,EACzD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ"}
1
+ {"version":3,"file":"orpc-error-map.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/orpc-error-map.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GACT,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,uBAAuB,CAAC;AAE5B,KAAK,UAAU,GAAG,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;AAElD,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,EACzD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAgBZ"}
@@ -7,7 +7,10 @@ export async function mapErrors(map, fn) {
7
7
  for (const [code, classes] of Object.entries(map)) {
8
8
  const list = Array.isArray(classes) ? classes : [classes];
9
9
  if (list.some((C) => err instanceof C)) {
10
- throw new ORPCError(code, { message: err.message });
10
+ const data = err instanceof Error && 'data' in err
11
+ ? err.data
12
+ : undefined;
13
+ throw new ORPCError(code, { message: err.message, data });
11
14
  }
12
15
  }
13
16
  throw err;
@@ -1 +1 @@
1
- {"version":3,"file":"orpc-error-map.js","sourceRoot":"","sources":["../../../src/server/kernel/orpc-error-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAYzC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAyD,EACzD,EAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAA4C,EAAE,CAAC;YAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"orpc-error-map.js","sourceRoot":"","sources":["../../../src/server/kernel/orpc-error-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAYzC,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAyD,EACzD,EAAoB;IAEpB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAA4C,EAAE,CAAC;YAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GACR,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG;oBACnC,CAAC,CAAE,GAAkC,CAAC,IAAI;oBAC1C,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -5,7 +5,9 @@ export declare class InProcessRealtimeTransport implements RealtimeTransport {
5
5
  private readonly inProcessPresence;
6
6
  readonly presence: RealtimePresence;
7
7
  publish<T>(channel: string, event: T): void;
8
- subscribe<T>(channel: string, handler: (event: T) => void): () => void;
8
+ remove<T>(channel: string, event: T): void;
9
+ subscribe<T>(channel: string, handler: (event: T) => void, clientId?: string): () => void;
10
+ revokeClientFromChannel(clientId: string, channel: string): void;
9
11
  getOnlineUserIds(channel: string): Promise<string[]>;
10
12
  }
11
13
  //# sourceMappingURL=realtime-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-transport.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/realtime-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA4CnF,2EAA2E;AAC3E,qBAAa,0BAA2B,YAAW,iBAAiB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAA0B;IAE7D,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAe3C,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAgBtE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGrD"}
1
+ {"version":3,"file":"realtime-transport.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/realtime-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA6CnF,2EAA2E;AAC3E,qBAAa,0BAA2B,YAAW,iBAAiB;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAA0B;IAE7D,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAe3C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAI1C,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI;IAiBzF,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAehE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGrD"}
@@ -44,7 +44,7 @@ export class InProcessRealtimeTransport {
44
44
  return;
45
45
  }
46
46
  // Snapshot so a handler that unsubscribes mid-iteration can't corrupt the loop.
47
- for (const handler of Array.from(subscribers)) {
47
+ for (const { handler } of Array.from(subscribers)) {
48
48
  try {
49
49
  handler(event);
50
50
  }
@@ -53,21 +53,39 @@ export class InProcessRealtimeTransport {
53
53
  }
54
54
  }
55
55
  }
56
- subscribe(channel, handler) {
56
+ remove(channel, event) {
57
+ this.publish(channel, event);
58
+ }
59
+ subscribe(channel, handler, clientId) {
57
60
  const subscribers = this.channels.get(channel) ?? new Set();
58
- subscribers.add(handler);
61
+ const subscription = { handler: handler, clientId };
62
+ subscribers.add(subscription);
59
63
  this.channels.set(channel, subscribers);
60
64
  return () => {
61
65
  const current = this.channels.get(channel);
62
66
  if (!current) {
63
67
  return;
64
68
  }
65
- current.delete(handler);
69
+ current.delete(subscription);
66
70
  if (current.size === 0) {
67
71
  this.channels.delete(channel);
68
72
  }
69
73
  };
70
74
  }
75
+ revokeClientFromChannel(clientId, channel) {
76
+ const subscribers = this.channels.get(channel);
77
+ if (!subscribers) {
78
+ return;
79
+ }
80
+ for (const subscription of Array.from(subscribers)) {
81
+ if (subscription.clientId === clientId) {
82
+ subscribers.delete(subscription);
83
+ }
84
+ }
85
+ if (subscribers.size === 0) {
86
+ this.channels.delete(channel);
87
+ }
88
+ }
71
89
  getOnlineUserIds(channel) {
72
90
  return Promise.resolve(this.inProcessPresence.getUserIds(channel));
73
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-transport.js","sourceRoot":"","sources":["../../../src/server/kernel/realtime-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime-transport.js","sourceRoot":"","sources":["../../../src/server/kernel/realtime-transport.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ declare const coreTokenCatalog: {
9
9
  AUTH_SESSION: import("@openora/core/contracts").Token<import("../auth/session-resolver.js").SessionResolver>;
10
10
  CACHE: import("@openora/core/contracts").Token<import("@openora/core/contracts").CacheAdapter>;
11
11
  CHAT_BLOCK_WRITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatBlockWriter>;
12
+ CHAT_MODERATION: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatModeration, string>;
12
13
  CHAT_REALTIME_CLIENT_AUTHORIZER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeClientAuthorizer>;
13
14
  CHAT_REALTIME_TRANSPORT: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeTransport>;
14
15
  CHAT_ROOM_ACCESS: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatRoomAccess>;
@@ -1 +1 @@
1
- {"version":3,"file":"core-token-catalog.d.ts","sourceRoot":"","sources":["../../../src/server/runtime/core-token-catalog.ts"],"names":[],"mappings":"AAmDA,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDE,CAAC;AAEzB,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC"}
1
+ {"version":3,"file":"core-token-catalog.d.ts","sourceRoot":"","sources":["../../../src/server/runtime/core-token-catalog.ts"],"names":[],"mappings":"AAoDA,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDE,CAAC;AAEzB,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ADMIN_GAME_REPORTING, ADMIN_PERMISSION_RESOLVER, ADMIN_PLAYER_ACTIVITY, ADMIN_USER_DIRECTORY, ADMIN_WALLET_REPORTING, AUDIT_WRITER, CACHE, CHAT_BLOCK_WRITER, CHAT_REALTIME_CLIENT_AUTHORIZER, CHAT_REALTIME_TRANSPORT, CHAT_ROOM_ACCESS, CHAT_SYSTEM_WRITER, EMAIL_TEMPLATE_RENDERER, ERROR_TRACKING, GAME_ADAPTER, GEO_IP_ADAPTER, GIFT_COMMANDS, IDENTITY_OPTIONS, IDENTITY_READER, IGAMING_CONFIG, JOB_QUEUE, KYC_ADAPTER, KYC_STATUS_WRITER, KYC_WEBHOOK_VERIFIER, LOGIN_ENFORCEMENT, MESSAGE_BROKER, NOTIFICATION_DELIVERY_ADAPTER, OUTBOX, PAYMENT_ADAPTER, PAYMENT_WEBHOOK_VERIFIER, PLATFORM_CONFIG, PLAYER_TAGS, PLAY_ELIGIBILITY, RAIN_COMMANDS, RATE_LIMITER, REALTIME_CLIENT_AUTHORIZER, REALTIME_TRANSPORT, RNG_ADAPTER, SEND_EMAIL, SESSION_COMMANDS, SMS_ADAPTER, TAG_EVALUATION_COMMANDS, WALLET_COMMANDS, WALLET_READER, } from '@openora/core/contracts';
1
+ import { ADMIN_GAME_REPORTING, ADMIN_PERMISSION_RESOLVER, ADMIN_PLAYER_ACTIVITY, ADMIN_USER_DIRECTORY, ADMIN_WALLET_REPORTING, AUDIT_WRITER, CACHE, CHAT_BLOCK_WRITER, CHAT_MODERATION, CHAT_REALTIME_CLIENT_AUTHORIZER, CHAT_REALTIME_TRANSPORT, CHAT_ROOM_ACCESS, CHAT_SYSTEM_WRITER, EMAIL_TEMPLATE_RENDERER, ERROR_TRACKING, GAME_ADAPTER, GEO_IP_ADAPTER, GIFT_COMMANDS, IDENTITY_OPTIONS, IDENTITY_READER, IGAMING_CONFIG, JOB_QUEUE, KYC_ADAPTER, KYC_STATUS_WRITER, KYC_WEBHOOK_VERIFIER, LOGIN_ENFORCEMENT, MESSAGE_BROKER, NOTIFICATION_DELIVERY_ADAPTER, OUTBOX, PAYMENT_ADAPTER, PAYMENT_WEBHOOK_VERIFIER, PLATFORM_CONFIG, PLAYER_TAGS, PLAY_ELIGIBILITY, RAIN_COMMANDS, RATE_LIMITER, REALTIME_CLIENT_AUTHORIZER, REALTIME_TRANSPORT, RNG_ADAPTER, SEND_EMAIL, SESSION_COMMANDS, SMS_ADAPTER, TAG_EVALUATION_COMMANDS, WALLET_COMMANDS, WALLET_READER, } from '@openora/core/contracts';
2
2
  import { ADMIN_GUARD, AUTH_SESSION } from '../auth/index.js';
3
3
  import { DRIZZLE } from '../db/index.js';
4
4
  import { EVENT_BUS } from '../kernel/index.js';
@@ -13,6 +13,7 @@ const coreTokenCatalog = {
13
13
  AUTH_SESSION,
14
14
  CACHE,
15
15
  CHAT_BLOCK_WRITER,
16
+ CHAT_MODERATION,
16
17
  CHAT_REALTIME_CLIENT_AUTHORIZER,
17
18
  CHAT_REALTIME_TRANSPORT,
18
19
  CHAT_ROOM_ACCESS,
@@ -1 +1 @@
1
- {"version":3,"file":"core-token-catalog.js","sourceRoot":"","sources":["../../../src/server/runtime/core-token-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,KAAK,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,6BAA6B,EAC7B,MAAM,EACN,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,gBAAgB,GAAG;IACvB,oBAAoB;IACpB,WAAW;IACX,yBAAyB;IACzB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,iBAAiB;IACjB,+BAA+B;IAC/B,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,OAAO;IACP,uBAAuB;IACvB,cAAc;IACd,SAAS;IACT,YAAY;IACZ,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,6BAA6B;IAC7B,MAAM;IACN,eAAe;IACf,wBAAwB;IACxB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,0BAA0B;IAC1B,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,aAAa;CACS,CAAC"}
1
+ {"version":3,"file":"core-token-catalog.js","sourceRoot":"","sources":["../../../src/server/runtime/core-token-catalog.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,KAAK,EACL,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,6BAA6B,EAC7B,MAAM,EACN,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,gBAAgB,GAAG;IACvB,oBAAoB;IACpB,WAAW;IACX,yBAAyB;IACzB,qBAAqB;IACrB,oBAAoB;IACpB,sBAAsB;IACtB,YAAY;IACZ,YAAY;IACZ,KAAK;IACL,iBAAiB;IACjB,eAAe;IACf,+BAA+B;IAC/B,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,OAAO;IACP,uBAAuB;IACvB,cAAc;IACd,SAAS;IACT,YAAY;IACZ,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,cAAc;IACd,SAAS;IACT,WAAW;IACX,iBAAiB;IACjB,oBAAoB;IACpB,iBAAiB;IACjB,cAAc;IACd,6BAA6B;IAC7B,MAAM;IACN,eAAe;IACf,wBAAwB;IACxB,eAAe;IACf,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,0BAA0B;IAC1B,kBAAkB;IAClB,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,aAAa;CACS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-transport-conformance.d.ts","sourceRoot":"","sources":["../../src/testing/realtime-transport-conformance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,iBAAiB,CAAC;IAChC;;;;OAIG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CACZ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,KAChD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CA8E5F"}
1
+ {"version":3,"file":"realtime-transport-conformance.d.ts","sourceRoot":"","sources":["../../src/testing/realtime-transport-conformance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,iBAAiB,CAAC;IAChC;;;;OAIG;IACH,2BAA2B,EAAE,OAAO,CAAC;IACrC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CACZ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,KAChD,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAqF5F"}
@@ -10,6 +10,10 @@ export function runRealtimeTransportConformanceSuite(harness) {
10
10
  const transport = harness.create();
11
11
  await expect(Promise.resolve(transport.publish('nobody-listening', { x: 1 }))).resolves.toBeUndefined();
12
12
  });
13
+ it('remove never throws or rejects, even to a channel with no subscribers', async () => {
14
+ const transport = harness.create();
15
+ await expect(Promise.resolve(transport.remove('nobody-listening', { id: 'message-1', isDeleted: true }))).resolves.toBeUndefined();
16
+ });
13
17
  it('subscribe returns an unsubscribe function that is idempotent', () => {
14
18
  const transport = harness.create();
15
19
  const unsubscribe = transport.subscribe('c', () => { });
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-transport-conformance.js","sourceRoot":"","sources":["../../src/testing/realtime-transport-conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realtime-transport-conformance.js","sourceRoot":"","sources":["../../src/testing/realtime-transport-conformance.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { mock, makeEventBus, makeIdentityReader, NO_CLIENT_META, makeAuditWriter
7
7
  import { migrate } from '../migrate.js';
8
8
  import { wallet, walletTransaction, walletDepositAddress } from '../schema/index.js';
9
9
  import { WalletService, WalletNotFoundError, WithdrawalNotFoundError, WithdrawalNotPendingError, InsufficientBalanceError, CurrencyMismatchError, IdempotencyKeyReuseError, DepositAddressUnsupportedError, DestinationAddressRequiredError, } from '../service/wallet.service.js';
10
+ import { WithdrawalQueueItemSchema } from '../contract/index.js';
10
11
  let db;
11
12
  function makePsp() {
12
13
  const settled = async () => ({
@@ -528,10 +529,16 @@ describe('WalletService.rejectWithdrawal (real PG)', () => {
528
529
  });
529
530
  });
530
531
  describe('WalletService.listWithdrawals (real PG)', () => {
531
- it('enriches rows with username and kycStatus from the directory port', async () => {
532
+ it('enriches rows with username, kycStatus, and playerId from the directory port', async () => {
532
533
  const w = await seedWallet();
534
+ const playerId = randomUUID();
533
535
  const directory = makeDirectory([
534
- { userId: w.userId, username: 'player1', kycStatus: 'verified' },
536
+ {
537
+ playerId,
538
+ userId: w.userId,
539
+ username: 'player1',
540
+ kycStatus: 'verified',
541
+ },
535
542
  ]);
536
543
  const { svc } = makeService({ directory });
537
544
  await seedTx(w.id, { amount: '10' });
@@ -539,10 +546,20 @@ describe('WalletService.listWithdrawals (real PG)', () => {
539
546
  expect(total).toBe(1);
540
547
  expect(items[0]).toMatchObject({
541
548
  userId: w.userId,
549
+ playerId,
542
550
  username: 'player1',
543
551
  kycStatus: 'verified',
544
552
  riskTags: [],
545
553
  });
554
+ expect(() => WithdrawalQueueItemSchema.parse(items[0])).not.toThrow();
555
+ });
556
+ it('yields playerId: null when the user has no player summary', async () => {
557
+ const w = await seedWallet();
558
+ const directory = makeDirectory([]);
559
+ const { svc } = makeService({ directory });
560
+ await seedTx(w.id, { amount: '10' });
561
+ const { items } = await svc.listWithdrawals({ page: 1, limit: 20 });
562
+ expect(items[0]).toMatchObject({ userId: w.userId, playerId: null, username: '' });
546
563
  });
547
564
  it('returns rows of every status when no status filter is given', async () => {
548
565
  const w = await seedWallet();