@openora/core 0.4.1-canary.66 → 0.4.1-canary.68

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 (213) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/audit/__tests__/audit.service.int.test.js +202 -2
  3. package/dist/audit/__tests__/audit.service.int.test.js.map +1 -1
  4. package/dist/audit/plugin.d.ts +2 -0
  5. package/dist/audit/plugin.d.ts.map +1 -1
  6. package/dist/audit/plugin.js +76 -34
  7. package/dist/audit/plugin.js.map +1 -1
  8. package/dist/casino/gaming/__tests__/gaming.service.int.test.js +4 -3
  9. package/dist/casino/gaming/__tests__/gaming.service.int.test.js.map +1 -1
  10. package/dist/casino/gaming/plugin.d.ts +1 -1
  11. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  12. package/dist/casino/gaming/plugin.js +3 -3
  13. package/dist/casino/gaming/plugin.js.map +1 -1
  14. package/dist/casino/gaming/service/gaming.service.d.ts +3 -2
  15. package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
  16. package/dist/casino/gaming/service/gaming.service.js +9 -2
  17. package/dist/casino/gaming/service/gaming.service.js.map +1 -1
  18. package/dist/compliance/__tests__/compliance.service.int.test.js +4 -3
  19. package/dist/compliance/__tests__/compliance.service.int.test.js.map +1 -1
  20. package/dist/compliance/__tests__/kyc-admin.router.int.test.js +2 -1
  21. package/dist/compliance/__tests__/kyc-admin.router.int.test.js.map +1 -1
  22. package/dist/compliance/__tests__/kyc.service.int.test.js +2 -1
  23. package/dist/compliance/__tests__/kyc.service.int.test.js.map +1 -1
  24. package/dist/compliance/__tests__/rg.router.int.test.js +4 -2
  25. package/dist/compliance/__tests__/rg.router.int.test.js.map +1 -1
  26. package/dist/compliance/__tests__/rg.service.int.test.js +4 -2
  27. package/dist/compliance/__tests__/rg.service.int.test.js.map +1 -1
  28. package/dist/compliance/plugin.d.ts.map +1 -1
  29. package/dist/compliance/plugin.js +4 -2
  30. package/dist/compliance/plugin.js.map +1 -1
  31. package/dist/compliance/service/compliance.service.d.ts +3 -2
  32. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  33. package/dist/compliance/service/compliance.service.js +5 -1
  34. package/dist/compliance/service/compliance.service.js.map +1 -1
  35. package/dist/compliance/service/kyc.service.d.ts +3 -1
  36. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  37. package/dist/compliance/service/kyc.service.js +6 -2
  38. package/dist/compliance/service/kyc.service.js.map +1 -1
  39. package/dist/compliance/service/rg.service.d.ts +3 -1
  40. package/dist/compliance/service/rg.service.d.ts.map +1 -1
  41. package/dist/compliance/service/rg.service.js +7 -0
  42. package/dist/compliance/service/rg.service.js.map +1 -1
  43. package/dist/contracts/adapters/identity-reader.d.ts +2 -0
  44. package/dist/contracts/adapters/identity-reader.d.ts.map +1 -1
  45. package/dist/contracts/adapters/identity-reader.js.map +1 -1
  46. package/dist/contracts/schemas/events.d.ts +63 -0
  47. package/dist/contracts/schemas/events.d.ts.map +1 -1
  48. package/dist/contracts/schemas/events.js +140 -24
  49. package/dist/contracts/schemas/events.js.map +1 -1
  50. package/dist/engagement/chat/__tests__/chat.service.int.test.js +8 -3
  51. package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -1
  52. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  53. package/dist/engagement/chat/plugin.js +2 -2
  54. package/dist/engagement/chat/plugin.js.map +1 -1
  55. package/dist/engagement/chat/service/chat.service.d.ts +3 -2
  56. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  57. package/dist/engagement/chat/service/chat.service.js +18 -1
  58. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  59. package/dist/engagement/contracts.d.ts +1 -0
  60. package/dist/engagement/contracts.d.ts.map +1 -1
  61. package/dist/engagement/contracts.js +1 -0
  62. package/dist/engagement/contracts.js.map +1 -1
  63. package/dist/engagement/index.d.ts +1 -0
  64. package/dist/engagement/index.d.ts.map +1 -1
  65. package/dist/engagement/index.js +1 -0
  66. package/dist/engagement/index.js.map +1 -1
  67. package/dist/engagement/notifications/__tests__/notifications.service.int.test.js +34 -0
  68. package/dist/engagement/notifications/__tests__/notifications.service.int.test.js.map +1 -1
  69. package/dist/engagement/notifications/contract/index.d.ts +9 -1
  70. package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
  71. package/dist/engagement/notifications/contract/index.js +2 -0
  72. package/dist/engagement/notifications/contract/index.js.map +1 -1
  73. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  74. package/dist/engagement/notifications/plugin.js +24 -0
  75. package/dist/engagement/notifications/plugin.js.map +1 -1
  76. package/dist/engagement/notifications/router/index.d.ts +2 -0
  77. package/dist/engagement/notifications/router/index.d.ts.map +1 -1
  78. package/dist/engagement/server.d.ts +1 -0
  79. package/dist/engagement/server.d.ts.map +1 -1
  80. package/dist/engagement/server.js +1 -0
  81. package/dist/engagement/server.js.map +1 -1
  82. package/dist/engagement/social/__tests__/social.router.int.test.d.ts +2 -0
  83. package/dist/engagement/social/__tests__/social.router.int.test.d.ts.map +1 -0
  84. package/dist/engagement/social/__tests__/social.router.int.test.js +97 -0
  85. package/dist/engagement/social/__tests__/social.router.int.test.js.map +1 -0
  86. package/dist/engagement/social/__tests__/social.service.int.test.d.ts +2 -0
  87. package/dist/engagement/social/__tests__/social.service.int.test.d.ts.map +1 -0
  88. package/dist/engagement/social/__tests__/social.service.int.test.js +233 -0
  89. package/dist/engagement/social/__tests__/social.service.int.test.js.map +1 -0
  90. package/dist/engagement/social/contract/index.d.ts +73 -0
  91. package/dist/engagement/social/contract/index.d.ts.map +1 -0
  92. package/dist/engagement/social/contract/index.js +54 -0
  93. package/dist/engagement/social/contract/index.js.map +1 -0
  94. package/dist/engagement/social/drizzle/migrations/0000_fine_jamie_braddock.sql +24 -0
  95. package/dist/engagement/social/drizzle/migrations/0001_lame_eddie_brock.sql +10 -0
  96. package/dist/engagement/social/drizzle/migrations/0002_foamy_saracen.sql +1 -0
  97. package/dist/engagement/social/drizzle/migrations/meta/0000_snapshot.json +232 -0
  98. package/dist/engagement/social/drizzle/migrations/meta/0001_snapshot.json +129 -0
  99. package/dist/engagement/social/drizzle/migrations/meta/0002_snapshot.json +134 -0
  100. package/dist/engagement/social/drizzle/migrations/meta/_journal.json +27 -0
  101. package/dist/engagement/social/drizzle.config.d.ts +4 -0
  102. package/dist/engagement/social/drizzle.config.d.ts.map +1 -0
  103. package/dist/engagement/social/drizzle.config.js +21 -0
  104. package/dist/engagement/social/drizzle.config.js.map +1 -0
  105. package/dist/engagement/social/index.d.ts +3 -0
  106. package/dist/engagement/social/index.d.ts.map +1 -0
  107. package/dist/engagement/social/index.js +6 -0
  108. package/dist/engagement/social/index.js.map +1 -0
  109. package/dist/engagement/social/migrate.d.ts +5 -0
  110. package/dist/engagement/social/migrate.d.ts.map +1 -0
  111. package/dist/engagement/social/migrate.js +17 -0
  112. package/dist/engagement/social/migrate.js.map +1 -0
  113. package/dist/engagement/social/plugin.d.ts +111 -0
  114. package/dist/engagement/social/plugin.d.ts.map +1 -0
  115. package/dist/engagement/social/plugin.js +16 -0
  116. package/dist/engagement/social/plugin.js.map +1 -0
  117. package/dist/engagement/social/router/index.d.ts +31 -0
  118. package/dist/engagement/social/router/index.d.ts.map +1 -0
  119. package/dist/engagement/social/router/index.js +31 -0
  120. package/dist/engagement/social/router/index.js.map +1 -0
  121. package/dist/engagement/social/schema/index.d.ts +128 -0
  122. package/dist/engagement/social/schema/index.d.ts.map +1 -0
  123. package/dist/engagement/social/schema/index.js +36 -0
  124. package/dist/engagement/social/schema/index.js.map +1 -0
  125. package/dist/engagement/social/service/social.service.d.ts +39 -0
  126. package/dist/engagement/social/service/social.service.d.ts.map +1 -0
  127. package/dist/engagement/social/service/social.service.js +251 -0
  128. package/dist/engagement/social/service/social.service.js.map +1 -0
  129. package/dist/iam/__tests__/iam.service.int.test.js +42 -38
  130. package/dist/iam/__tests__/iam.service.int.test.js.map +1 -1
  131. package/dist/iam/plugin.d.ts.map +1 -1
  132. package/dist/iam/plugin.js +2 -2
  133. package/dist/iam/plugin.js.map +1 -1
  134. package/dist/iam/service/iam.service.d.ts +3 -2
  135. package/dist/iam/service/iam.service.d.ts.map +1 -1
  136. package/dist/iam/service/iam.service.js +24 -10
  137. package/dist/iam/service/iam.service.js.map +1 -1
  138. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.js +6 -2
  139. package/dist/pam/identity/__tests__/identity.rate-limit.int.test.js.map +1 -1
  140. package/dist/pam/identity/__tests__/identity.service.int.test.js +3 -2
  141. package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -1
  142. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.js +8 -3
  143. package/dist/pam/identity/__tests__/login-enforcement.service.int.test.js.map +1 -1
  144. package/dist/pam/identity/adapters/identity-reader.service.d.ts +1 -0
  145. package/dist/pam/identity/adapters/identity-reader.service.d.ts.map +1 -1
  146. package/dist/pam/identity/adapters/identity-reader.service.js +11 -0
  147. package/dist/pam/identity/adapters/identity-reader.service.js.map +1 -1
  148. package/dist/pam/identity/plugin.d.ts.map +1 -1
  149. package/dist/pam/identity/plugin.js +16 -3
  150. package/dist/pam/identity/plugin.js.map +1 -1
  151. package/dist/pam/identity/service/identity.service.d.ts +4 -2
  152. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  153. package/dist/pam/identity/service/identity.service.js +81 -31
  154. package/dist/pam/identity/service/identity.service.js.map +1 -1
  155. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
  156. package/dist/pam/identity/service/phone-login.service.js +16 -6
  157. package/dist/pam/identity/service/phone-login.service.js.map +1 -1
  158. package/dist/pam/identity/service/session.service.d.ts +4 -2
  159. package/dist/pam/identity/service/session.service.d.ts.map +1 -1
  160. package/dist/pam/identity/service/session.service.js +5 -1
  161. package/dist/pam/identity/service/session.service.js.map +1 -1
  162. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.js +2 -1
  163. package/dist/pam/player-management/__tests__/kyc-status-writer.int.test.js.map +1 -1
  164. package/dist/pam/player-management/__tests__/player.service.int.test.js +1 -0
  165. package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -1
  166. package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
  167. package/dist/pam/player-management/service/kyc-status-writer.js +2 -1
  168. package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
  169. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  170. package/dist/pam/player-management/service/player.service.js +1 -0
  171. package/dist/pam/player-management/service/player.service.js.map +1 -1
  172. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.js +57 -13
  173. package/dist/pam/tag/__tests__/tag-evaluation.service.int.test.js.map +1 -1
  174. package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
  175. package/dist/pam/tag/service/tag.service.js +25 -0
  176. package/dist/pam/tag/service/tag.service.js.map +1 -1
  177. package/dist/server/auth/admin-guard.d.ts +3 -2
  178. package/dist/server/auth/admin-guard.d.ts.map +1 -1
  179. package/dist/server/auth/admin-guard.js +28 -9
  180. package/dist/server/auth/admin-guard.js.map +1 -1
  181. package/dist/server/kernel/__tests__/event-bus.int.test.js +9 -5
  182. package/dist/server/kernel/__tests__/event-bus.int.test.js.map +1 -1
  183. package/dist/server/runtime/create-app.d.ts.map +1 -1
  184. package/dist/server/runtime/create-app.js +4 -2
  185. package/dist/server/runtime/create-app.js.map +1 -1
  186. package/dist/testing/mock.d.ts +2 -1
  187. package/dist/testing/mock.d.ts.map +1 -1
  188. package/dist/testing/mock.js +8 -0
  189. package/dist/testing/mock.js.map +1 -1
  190. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js +2 -1
  191. package/dist/wallet/__tests__/wallet-auto-rule.router.int.test.js.map +1 -1
  192. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js +4 -2
  193. package/dist/wallet/__tests__/wallet-auto-withdrawal-config.router.int.test.js.map +1 -1
  194. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js +5 -2
  195. package/dist/wallet/__tests__/wallet-auto-withdrawal.int.test.js.map +1 -1
  196. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js +4 -2
  197. package/dist/wallet/__tests__/wallet-kyc-gate.int.test.js.map +1 -1
  198. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js +4 -2
  199. package/dist/wallet/__tests__/wallet-webhook.router.int.test.js.map +1 -1
  200. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js +4 -2
  201. package/dist/wallet/__tests__/wallet.rate-limit.int.test.js.map +1 -1
  202. package/dist/wallet/__tests__/wallet.router.int.test.js +2 -1
  203. package/dist/wallet/__tests__/wallet.router.int.test.js.map +1 -1
  204. package/dist/wallet/__tests__/wallet.service.int.test.js +4 -2
  205. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
  206. package/dist/wallet/plugin.d.ts.map +1 -1
  207. package/dist/wallet/plugin.js +2 -1
  208. package/dist/wallet/plugin.js.map +1 -1
  209. package/dist/wallet/service/wallet.service.d.ts +4 -2
  210. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  211. package/dist/wallet/service/wallet.service.js +8 -1
  212. package/dist/wallet/service/wallet.service.js.map +1 -1
  213. package/package.json +21 -1
@@ -1,8 +1,12 @@
1
1
  import { describe, it, expect, beforeAll, afterAll, beforeEach } from 'vitest';
2
+ import { randomUUID } from 'node:crypto';
2
3
  import { eq, sql } from 'drizzle-orm';
3
4
  import { createTestDb } from '@openora/core/testing';
5
+ import { player } from '@openora/core/pam/schema/profile';
6
+ import { migrate as migrateProfile } from '@openora/core/pam/migrate/profile';
4
7
  import { makeEventBus } from '../../testing/mock.js';
5
8
  import { migrate } from '../migrate.js';
9
+ import { mapEventToRecord } from '../plugin.js';
6
10
  import { auditLog } from '../schema/index.js';
7
11
  import { AuditService, computeHash, startOfDayUtc, endOfDayUtc } from '../service/audit.service.js';
8
12
  import { AuditListFiltersSchema } from '../contract/index.js';
@@ -76,14 +80,21 @@ let db;
76
80
  function makeService() {
77
81
  return new AuditService(db.drizzle, makeEventBus());
78
82
  }
83
+ async function seedPlayer(overrides = {}) {
84
+ const [row] = await db.drizzle.db
85
+ .insert(player)
86
+ .values({ userId: randomUUID(), displayName: 'Player', ...overrides })
87
+ .returning();
88
+ return row;
89
+ }
79
90
  beforeAll(async () => {
80
- db = await createTestDb([migrate]);
91
+ db = await createTestDb([migrate, migrateProfile]);
81
92
  });
82
93
  afterAll(async () => {
83
94
  await db.drop();
84
95
  });
85
96
  beforeEach(async () => {
86
- await db.drizzle.db.execute(sql `TRUNCATE ${auditLog} RESTART IDENTITY CASCADE`);
97
+ await db.drizzle.db.execute(sql `TRUNCATE ${auditLog}, ${player} RESTART IDENTITY CASCADE`);
87
98
  });
88
99
  describe('AuditService.record() (real PG)', () => {
89
100
  it('inserts with prevHash=null for the first row and stores a real sha256 hash', async () => {
@@ -126,6 +137,51 @@ describe('AuditService.record() (real PG)', () => {
126
137
  expect(second.seq).toBeGreaterThan(first.seq);
127
138
  expect((await svc.verifyChain()).valid).toBe(true);
128
139
  });
140
+ it('records the row a social.friend_request.sent branch would produce', async () => {
141
+ const friendshipId = randomUUID();
142
+ const requesterId = randomUUID();
143
+ const addresseeId = randomUUID();
144
+ const result = await makeService().record({
145
+ actorType: 'player',
146
+ actorId: requesterId,
147
+ action: 'social.friend_request.sent',
148
+ resourceType: 'friendship',
149
+ resourceId: friendshipId,
150
+ after: { addresseeId, status: 'pending' },
151
+ result: 'success',
152
+ });
153
+ expect(result).toMatchObject({
154
+ actorType: 'player',
155
+ actorId: requesterId,
156
+ action: 'social.friend_request.sent',
157
+ resourceType: 'friendship',
158
+ resourceId: friendshipId,
159
+ after: { addresseeId, status: 'pending' },
160
+ result: 'success',
161
+ });
162
+ });
163
+ it('records the row a social.friend_request.accepted branch would produce', async () => {
164
+ const friendshipId = randomUUID();
165
+ const accepterId = randomUUID();
166
+ const result = await makeService().record({
167
+ actorType: 'player',
168
+ actorId: accepterId,
169
+ action: 'social.friend_request.accepted',
170
+ resourceType: 'friendship',
171
+ resourceId: friendshipId,
172
+ after: { status: 'accepted' },
173
+ result: 'success',
174
+ });
175
+ expect(result).toMatchObject({
176
+ actorType: 'player',
177
+ actorId: accepterId,
178
+ action: 'social.friend_request.accepted',
179
+ resourceType: 'friendship',
180
+ resourceId: friendshipId,
181
+ after: { status: 'accepted' },
182
+ result: 'success',
183
+ });
184
+ });
129
185
  });
130
186
  describe('AuditService.verifyChain() (real PG)', () => {
131
187
  async function seedRow(input) {
@@ -339,4 +395,148 @@ describe('AuditService.exportCsv() (real PG)', () => {
339
395
  expect(csv).toContain('has ""quotes""');
340
396
  });
341
397
  });
398
+ describe('mapEventToRecord() player.id resolution (BF-335)', () => {
399
+ // The emitter (never mapEventToRecord/AuditService) resolves playerId before the
400
+ // event is published - these tests exercise the mapper as a pure function that
401
+ // just reads p['playerId']/p['actorPlayerId'] straight off an already-resolved
402
+ // payload, exactly as the real event bus delivers it.
403
+ async function mapAndRecord(topic, payload) {
404
+ const svc = makeService();
405
+ const record = await mapEventToRecord(topic, payload);
406
+ return svc.record(record);
407
+ }
408
+ it('compliance.kyc.updated: resourceId is the player.id, not the event userId', async () => {
409
+ const p = await seedPlayer();
410
+ const row = await mapAndRecord('compliance.kyc.updated', {
411
+ userId: p.userId,
412
+ playerId: p.id,
413
+ actorId: null,
414
+ previousStatus: 'pending',
415
+ status: 'verified',
416
+ });
417
+ expect(row.resourceId).toBe(p.id);
418
+ expect(row.resourceId).not.toBe(p.userId);
419
+ expect(row.resourceType).toBe('player');
420
+ });
421
+ it('compliance.kyc.updated: resourceId is null when the payload carries no playerId', async () => {
422
+ const row = await mapAndRecord('compliance.kyc.updated', {
423
+ userId: randomUUID(),
424
+ playerId: null,
425
+ actorId: null,
426
+ previousStatus: 'pending',
427
+ status: 'verified',
428
+ });
429
+ expect(row.resourceId).toBeNull();
430
+ });
431
+ it('compliance.kyc.submitted: actorId and resourceId both come from the resolved playerId (self-action)', async () => {
432
+ const p = await seedPlayer();
433
+ const row = await mapAndRecord('compliance.kyc.submitted', {
434
+ userId: p.userId,
435
+ playerId: p.id,
436
+ referenceId: 'ref-1',
437
+ provider: 'sumsub',
438
+ });
439
+ expect(row.resourceId).toBe(p.id);
440
+ expect(row.actorId).toBe(p.id);
441
+ });
442
+ it('compliance.kyc.reverify_required: resourceId comes from the payload playerId', async () => {
443
+ const p = await seedPlayer();
444
+ const row = await mapAndRecord('compliance.kyc.reverify_required', {
445
+ userId: p.userId,
446
+ playerId: p.id,
447
+ reason: 'address change',
448
+ });
449
+ expect(row.resourceId).toBe(p.id);
450
+ });
451
+ it('compliance.kyc.high_risk_signal_detected: resourceId comes from the payload playerId', async () => {
452
+ const p = await seedPlayer();
453
+ const row = await mapAndRecord('compliance.kyc.high_risk_signal_detected', {
454
+ userId: p.userId,
455
+ playerId: p.id,
456
+ referenceId: 'ref-2',
457
+ });
458
+ expect(row.resourceId).toBe(p.id);
459
+ });
460
+ it('chat.user.blocked: resourceId is the blocked player, actorId is the blocking player', async () => {
461
+ const blocker = await seedPlayer();
462
+ const blocked = await seedPlayer();
463
+ const row = await mapAndRecord('chat.user.blocked', {
464
+ blockerId: blocker.userId,
465
+ actorPlayerId: blocker.id,
466
+ blockedId: blocked.userId,
467
+ playerId: blocked.id,
468
+ });
469
+ expect(row.resourceId).toBe(blocked.id);
470
+ expect(row.actorId).toBe(blocker.id);
471
+ });
472
+ it('chat.user.ignored: resourceId is the ignored player, actorId is the ignoring player', async () => {
473
+ const ignorer = await seedPlayer();
474
+ const ignored = await seedPlayer();
475
+ const row = await mapAndRecord('chat.user.ignored', {
476
+ ignorerId: ignorer.userId,
477
+ actorPlayerId: ignorer.id,
478
+ ignoredId: ignored.userId,
479
+ playerId: ignored.id,
480
+ });
481
+ expect(row.resourceId).toBe(ignored.id);
482
+ expect(row.actorId).toBe(ignorer.id);
483
+ });
484
+ it('player.level.changed: resourceId comes from the payload playerId', async () => {
485
+ const p = await seedPlayer();
486
+ const row = await mapAndRecord('player.level.changed', {
487
+ userId: p.userId,
488
+ playerId: p.id,
489
+ actorId: randomUUID(),
490
+ previousLevel: 1,
491
+ newLevel: 2,
492
+ });
493
+ expect(row.resourceId).toBe(p.id);
494
+ });
495
+ it('rg.limit.set / rg.self_exclusion.activated / rg.cooling_off.lifted: shared branch resolves resourceId from the payload playerId', async () => {
496
+ const p = await seedPlayer();
497
+ for (const topic of ['rg.limit.set', 'rg.self_exclusion.activated', 'rg.cooling_off.lifted']) {
498
+ const row = await mapAndRecord(topic, {
499
+ userId: p.userId,
500
+ playerId: p.id,
501
+ actorId: randomUUID(),
502
+ });
503
+ expect(row.resourceId).toBe(p.id);
504
+ }
505
+ });
506
+ it('rg.exclusion.login_blocked: resourceId comes from the payload playerId', async () => {
507
+ const p = await seedPlayer();
508
+ const row = await mapAndRecord('rg.exclusion.login_blocked', {
509
+ userId: p.userId,
510
+ playerId: p.id,
511
+ });
512
+ expect(row.resourceId).toBe(p.id);
513
+ });
514
+ it('player.login_blocked: resourceId comes from the payload playerId', async () => {
515
+ const p = await seedPlayer();
516
+ const row = await mapAndRecord('player.login_blocked', { userId: p.userId, playerId: p.id });
517
+ expect(row.resourceId).toBe(p.id);
518
+ });
519
+ it('tag.player.assigned is unaffected - resourceId still comes straight from playerId (already a player.id)', async () => {
520
+ const p = await seedPlayer();
521
+ const row = await mapAndRecord('tag.player.assigned', {
522
+ playerId: p.id,
523
+ actorId: randomUUID(),
524
+ tagKey: 'vip',
525
+ reason: 'manual',
526
+ });
527
+ expect(row.resourceId).toBe(p.id);
528
+ });
529
+ it('wallet.withdrawal.requested: actorId comes from the resolved playerId, not the raw userId', async () => {
530
+ const p = await seedPlayer();
531
+ const row = await mapAndRecord('wallet.withdrawal.requested', {
532
+ userId: p.userId,
533
+ playerId: p.id,
534
+ transactionId: 'txn-1',
535
+ amount: '10.00',
536
+ currency: 'USD',
537
+ });
538
+ expect(row.actorId).toBe(p.id);
539
+ expect(row.actorId).not.toBe(p.userId);
540
+ });
541
+ });
342
542
  //# sourceMappingURL=audit.service.int.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.service.int.test.js","sourceRoot":"","sources":["../../../src/audit/__tests__/audit.service.int.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.service.int.test.js","sourceRoot":"","sources":["../../../src/audit/__tests__/audit.service.int.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type RecordInput } from './service/audit.service.js';
2
+ export declare function mapEventToRecord(topic: string, p: Record<string, unknown>): Promise<RecordInput>;
1
3
  declare const _default: {
2
4
  readonly id: "audit";
3
5
  readonly register: (ctx: import("@openora/core/server").PluginContext<{
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/audit/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6kBA,wBAmC8C"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/audit/plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAS5E,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,CAshBtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFD,wBAoC8C"}
@@ -6,7 +6,7 @@ const str = (v) => (typeof v === 'string' ? v : null);
6
6
  function isRecord(v) {
7
7
  return typeof v === 'object' && v !== null;
8
8
  }
9
- function mapEventToRecord(topic, p) {
9
+ export async function mapEventToRecord(topic, p) {
10
10
  const result = /\.(failed|rejected|declined)$/.test(topic) ? 'failure' : 'success';
11
11
  const base = {
12
12
  actorType: 'system',
@@ -25,7 +25,7 @@ function mapEventToRecord(topic, p) {
25
25
  actorType: p['actorId'] ? 'admin' : 'system',
26
26
  actorId: str(p['actorId']),
27
27
  resourceType: 'player',
28
- resourceId: str(p['userId']),
28
+ resourceId: str(p['playerId']),
29
29
  before: { kycStatus: p['previousStatus'] ?? null },
30
30
  after: {
31
31
  kycStatus: p['status'] ?? null,
@@ -34,14 +34,15 @@ function mapEventToRecord(topic, p) {
34
34
  },
35
35
  };
36
36
  }
37
- // Player submitted KYC documents. actorId = the player; resourceId = the player.
37
+ // Player submitted KYC documents. actorId = resourceId = the player (self-action),
38
+ // both resolved by the emitter as playerId.
38
39
  if (topic === 'compliance.kyc.submitted') {
39
40
  return {
40
41
  ...base,
41
42
  actorType: 'player',
42
- actorId: str(p['userId']),
43
+ actorId: str(p['playerId']),
43
44
  resourceType: 'player',
44
- resourceId: str(p['userId']),
45
+ resourceId: str(p['playerId']),
45
46
  after: { referenceId: p['referenceId'] ?? null, provider: p['provider'] ?? null },
46
47
  };
47
48
  }
@@ -51,7 +52,7 @@ function mapEventToRecord(topic, p) {
51
52
  ...base,
52
53
  actorType: 'system',
53
54
  resourceType: 'player',
54
- resourceId: str(p['userId']),
55
+ resourceId: str(p['playerId']),
55
56
  after: { reason: p['reason'] ?? null },
56
57
  };
57
58
  }
@@ -60,7 +61,7 @@ function mapEventToRecord(topic, p) {
60
61
  ...base,
61
62
  actorType: 'system',
62
63
  resourceType: 'player',
63
- resourceId: str(p['userId']),
64
+ resourceId: str(p['playerId']),
64
65
  after: {
65
66
  referenceId: p['referenceId'] ?? null,
66
67
  vpnOrTorDetected: p['vpnOrTorDetected'] ?? null,
@@ -81,13 +82,13 @@ function mapEventToRecord(topic, p) {
81
82
  after: { action: p['action'] ?? null },
82
83
  };
83
84
  }
84
- // Player requested a withdrawal (funds held). actorId = the player; resourceId =
85
- // the withdrawal transaction.
85
+ // Player requested a withdrawal (funds held). actorId = the player (resolved
86
+ // playerId); resourceId = the withdrawal transaction.
86
87
  if (topic === 'wallet.withdrawal.requested') {
87
88
  return {
88
89
  ...base,
89
90
  actorType: 'player',
90
- actorId: str(p['userId']),
91
+ actorId: str(p['playerId']),
91
92
  resourceType: 'withdrawal',
92
93
  resourceId: str(p['transactionId']),
93
94
  after: { amount: p['amount'], currency: p['currency'] },
@@ -162,14 +163,17 @@ function mapEventToRecord(topic, p) {
162
163
  after: { email: p['email'] ?? null },
163
164
  };
164
165
  }
166
+ // actorId = the resolved playerId when the caller was a player, else the raw
167
+ // (admin) userId.
165
168
  if (topic === 'identity.user.unauthorized_access') {
166
169
  const resource = str(p['resource']) ?? 'admin';
167
170
  const action = str(p['action']);
168
171
  const role = p['role'] ? str(p['role']) : undefined;
172
+ const isPlayer = role === 'player';
169
173
  return {
170
174
  ...base,
171
- actorType: role === 'player' ? 'player' : 'admin',
172
- actorId: str(p['userId']),
175
+ actorType: isPlayer ? 'player' : 'admin',
176
+ actorId: isPlayer ? str(p['playerId']) : str(p['userId']),
173
177
  resourceType: resource,
174
178
  resourceId: action ? `${resource}:${action}` : null,
175
179
  result: 'failure',
@@ -180,7 +184,7 @@ function mapEventToRecord(topic, p) {
180
184
  return {
181
185
  ...base,
182
186
  actorType: 'player',
183
- actorId: str(p['userId']),
187
+ actorId: str(p['playerId']),
184
188
  resourceType: 'user',
185
189
  resourceId: str(p['userId']),
186
190
  result: 'success',
@@ -222,10 +226,12 @@ function mapEventToRecord(topic, p) {
222
226
  };
223
227
  }
224
228
  // Player/Admin revoked one or all of their own sessions, or an admin forced it.
229
+ // actorId = the resolved playerId on the self-revoke path, else the acting admin's
230
+ // raw userId (never resolved - actor is an admin, not the subject player).
225
231
  if (topic === 'identity.session.revoked' || topic === 'identity.sessions.revoked_all') {
226
232
  const isSingle = topic === 'identity.session.revoked';
227
- const actorId = p['actorId'] ? str(p['actorId']) : str(p['userId']);
228
233
  const isForced = !!p['actorId'];
234
+ const actorId = isForced ? str(p['actorId']) : str(p['playerId']);
229
235
  return {
230
236
  ...base,
231
237
  actorType: isForced ? 'admin' : 'player',
@@ -234,44 +240,46 @@ function mapEventToRecord(topic, p) {
234
240
  resourceId: isSingle ? str(p['sessionId']) : str(p['userId']),
235
241
  };
236
242
  }
237
- // actorId = the player who (un)blocked; resource = the blocked player.
243
+ // actorId = the (un)blocking player's resolved playerId; resource = the
244
+ // blocked/unblocked player's resolved playerId.
238
245
  if (topic === 'chat.user.blocked' || topic === 'chat.user.unblocked') {
239
246
  return {
240
247
  ...base,
241
248
  actorType: 'player',
242
- actorId: str(p['blockerId']),
249
+ actorId: str(p['actorPlayerId']),
243
250
  resourceType: 'player',
244
- resourceId: str(p['blockedId']),
251
+ resourceId: str(p['playerId']),
245
252
  };
246
253
  }
247
- // actorId = the player who (un)ignored; resource = the ignored player.
254
+ // actorId = the (un)ignoring player's resolved playerId; resource = the
255
+ // ignored/unignored player's resolved playerId.
248
256
  if (topic === 'chat.user.ignored' || topic === 'chat.user.unignored') {
249
257
  return {
250
258
  ...base,
251
259
  actorType: 'player',
252
- actorId: str(p['ignorerId']),
260
+ actorId: str(p['actorPlayerId']),
253
261
  resourceType: 'player',
254
- resourceId: str(p['ignoredId']),
262
+ resourceId: str(p['playerId']),
255
263
  };
256
264
  }
257
- // actorId = the moderator who acted; resource = the affected player in that room.
265
+ // actorId = the moderator's resolved playerId; resource = the affected player in
266
+ // that room (not player-typed - resourceId stays the raw member userId).
258
267
  if (topic === 'chat.room.member.kicked' || topic === 'chat.room.member.banned') {
259
- const actorKey = topic === 'chat.room.member.kicked' ? 'kickedBy' : 'bannedBy';
260
268
  return {
261
269
  ...base,
262
270
  actorType: 'player',
263
- actorId: str(p[actorKey]),
271
+ actorId: str(p['playerId']),
264
272
  resourceType: 'chat_room_member',
265
273
  resourceId: str(p['userId']),
266
274
  after: { roomId: str(p['roomId']) },
267
275
  };
268
276
  }
269
- // actorId = the player who created/deleted the room; resource = the room.
277
+ // actorId = the creating/deleting player's resolved playerId; resource = the room.
270
278
  if (topic === 'chat.private_room.created' || topic === 'chat.private_room.deleted') {
271
279
  return {
272
280
  ...base,
273
281
  actorType: 'player',
274
- actorId: str(p['creatorId']),
282
+ actorId: str(p['playerId']),
275
283
  resourceType: 'chat_room',
276
284
  resourceId: str(p['roomId']),
277
285
  };
@@ -294,11 +302,13 @@ function mapEventToRecord(topic, p) {
294
302
  ...(topic === 'chat.room.updated' ? { after: isRecord(p['after']) ? p['after'] : null } : {}),
295
303
  };
296
304
  }
305
+ // actorId = the joining/leaving player's resolved playerId; resource is not
306
+ // player-typed - resourceId stays the raw member userId.
297
307
  if (topic === 'chat.room.member.joined' || topic === 'chat.room.member.left') {
298
308
  return {
299
309
  ...base,
300
310
  actorType: 'player',
301
- actorId: str(p['userId']),
311
+ actorId: str(p['playerId']),
302
312
  resourceType: 'chat_room_member',
303
313
  resourceId: str(p['userId']),
304
314
  after: { roomId: str(p['roomId']) },
@@ -326,7 +336,7 @@ function mapEventToRecord(topic, p) {
326
336
  actorType: 'admin',
327
337
  actorId: str(p['actorId']),
328
338
  resourceType: 'player',
329
- resourceId: str(p['userId']),
339
+ resourceId: str(p['playerId']),
330
340
  before: { level: p['previousLevel'] ?? null },
331
341
  after: { level: p['newLevel'] ?? null },
332
342
  };
@@ -345,6 +355,30 @@ function mapEventToRecord(topic, p) {
345
355
  after: { tagKey: p['tagKey'], reason: p['reason'] },
346
356
  };
347
357
  }
358
+ // A player sent a friend request. actorId = the requester; resourceId = the
359
+ // friendship row; recipient carried in after so the trail shows who was notified.
360
+ if (topic === 'social.friend_request.sent') {
361
+ return {
362
+ ...base,
363
+ actorType: 'player',
364
+ actorId: str(p['requesterId']),
365
+ resourceType: 'friendship',
366
+ resourceId: str(p['friendshipId']),
367
+ after: { addresseeId: str(p['addresseeId']), status: 'pending' },
368
+ };
369
+ }
370
+ // A pending friend request became a friendship. actorId = whoever's action
371
+ // triggered the accept (accepterId - see events.ts for the mutual-request case).
372
+ if (topic === 'social.friend_request.accepted') {
373
+ return {
374
+ ...base,
375
+ actorType: 'player',
376
+ actorId: str(p['accepterId']),
377
+ resourceType: 'friendship',
378
+ resourceId: str(p['friendshipId']),
379
+ after: { status: 'accepted' },
380
+ };
381
+ }
348
382
  // Admin CMS page/banner CRUD. actorId = acting admin; resourceId = the page/banner.
349
383
  if (topic === 'cms.page.created' ||
350
384
  topic === 'cms.page.updated' ||
@@ -411,7 +445,7 @@ function mapEventToRecord(topic, p) {
411
445
  actorType: 'admin',
412
446
  actorId: str(p['actorId']),
413
447
  resourceType: 'player',
414
- resourceId: str(p['userId']),
448
+ resourceId: str(p['playerId']),
415
449
  before,
416
450
  after: p,
417
451
  };
@@ -424,7 +458,7 @@ function mapEventToRecord(topic, p) {
424
458
  ...base,
425
459
  actorType: 'system',
426
460
  resourceType: 'player',
427
- resourceId: str(p['userId']),
461
+ resourceId: str(p['playerId']),
428
462
  result: 'failure',
429
463
  };
430
464
  }
@@ -436,24 +470,29 @@ function mapEventToRecord(topic, p) {
436
470
  ...base,
437
471
  actorType: 'system',
438
472
  resourceType: 'player',
439
- resourceId: str(p['userId']),
473
+ resourceId: str(p['playerId']),
440
474
  result: 'failure',
441
475
  };
442
476
  }
443
477
  // Wallet events carry the txn ref in transactionId; surface it as resourceId so
444
478
  // a transaction reference is searchable (it otherwise stays buried in `after`).
479
+ // actorId = the resolved playerId (the wallet owner).
445
480
  if (topic.startsWith('wallet.')) {
446
481
  return {
447
482
  ...base,
448
483
  actorType: 'player',
449
- actorId: str(p['userId']),
484
+ actorId: str(p['playerId']),
450
485
  resourceType: 'transaction',
451
486
  resourceId: str(p['transactionId']),
452
487
  after: p,
453
488
  };
454
489
  }
490
+ // Generic player-self-action fallback (login/logout/registered/2fa/password
491
+ // reset/email verified/profile updated, gaming rounds, self-service RG limits,
492
+ // ...): actorId = the resolved playerId. `identity.user.registered` legitimately
493
+ // has no player row yet at emit time, so this can be null.
455
494
  if (typeof p['userId'] === 'string') {
456
- return { ...base, actorId: p['userId'], actorType: 'player' };
495
+ return { ...base, actorId: str(p['playerId']), actorType: 'player' };
457
496
  }
458
497
  return base;
459
498
  }
@@ -537,6 +576,8 @@ const SUBSCRIBED_TOPICS = [
537
576
  'tag.rule.upserted',
538
577
  'player.level.changed',
539
578
  'player.login_blocked',
579
+ 'social.friend_request.sent',
580
+ 'social.friend_request.accepted',
540
581
  ];
541
582
  export default {
542
583
  id: 'audit',
@@ -557,8 +598,9 @@ export default {
557
598
  if (!svcRef || !isRecord(payload)) {
558
599
  return;
559
600
  }
560
- void svcRef
561
- .record(mapEventToRecord(topic, payload))
601
+ const svc = svcRef;
602
+ void mapEventToRecord(topic, payload)
603
+ .then((record) => svc.record(record))
562
604
  .catch((err) => logger.error({ err, topic }, 'audit record failed'));
563
605
  });
564
606
  }