@openora/core 0.4.1-canary.40 → 0.4.1-canary.41

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 (176) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/contract/index.d.ts +2 -0
  3. package/dist/admin-console/contract/index.d.ts.map +1 -1
  4. package/dist/admin-console/router/index.d.ts +1 -0
  5. package/dist/admin-console/router/index.d.ts.map +1 -1
  6. package/dist/admin-console/service/backoffice.service.d.ts +1 -1
  7. package/dist/audit/plugin.d.ts.map +1 -1
  8. package/dist/audit/plugin.js +21 -1
  9. package/dist/audit/plugin.js.map +1 -1
  10. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js +66 -12
  11. package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js.map +1 -1
  12. package/dist/compliance/__tests__/kyc-admin.router.test.d.ts +2 -0
  13. package/dist/compliance/__tests__/kyc-admin.router.test.d.ts.map +1 -0
  14. package/dist/compliance/__tests__/kyc-admin.router.test.js +191 -0
  15. package/dist/compliance/__tests__/kyc-admin.router.test.js.map +1 -0
  16. package/dist/compliance/__tests__/kyc-webhook.router.test.d.ts +2 -0
  17. package/dist/compliance/__tests__/kyc-webhook.router.test.d.ts.map +1 -0
  18. package/dist/compliance/__tests__/kyc-webhook.router.test.js +148 -0
  19. package/dist/compliance/__tests__/kyc-webhook.router.test.js.map +1 -0
  20. package/dist/compliance/__tests__/kyc.service.test.js +11 -10
  21. package/dist/compliance/__tests__/kyc.service.test.js.map +1 -1
  22. package/dist/compliance/__tests__/rg.router.test.js +5 -1
  23. package/dist/compliance/__tests__/rg.router.test.js.map +1 -1
  24. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts +16 -3
  25. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts.map +1 -1
  26. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js +47 -5
  27. package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js.map +1 -1
  28. package/dist/compliance/contract/index.d.ts +312 -0
  29. package/dist/compliance/contract/index.d.ts.map +1 -1
  30. package/dist/compliance/contract/index.js +50 -1
  31. package/dist/compliance/contract/index.js.map +1 -1
  32. package/dist/compliance/drizzle/migrations/0002_condemned_monster_badoon.sql +3 -0
  33. package/dist/compliance/drizzle/migrations/0003_public_spirit.sql +1 -0
  34. package/dist/compliance/drizzle/migrations/meta/0002_snapshot.json +673 -0
  35. package/dist/compliance/drizzle/migrations/meta/0003_snapshot.json +679 -0
  36. package/dist/compliance/drizzle/migrations/meta/_journal.json +14 -0
  37. package/dist/compliance/plugin.d.ts.map +1 -1
  38. package/dist/compliance/plugin.js +23 -3
  39. package/dist/compliance/plugin.js.map +1 -1
  40. package/dist/compliance/router/index.d.ts +186 -2
  41. package/dist/compliance/router/index.d.ts.map +1 -1
  42. package/dist/compliance/router/index.js +52 -3
  43. package/dist/compliance/router/index.js.map +1 -1
  44. package/dist/compliance/schema/index.d.ts +65 -3
  45. package/dist/compliance/schema/index.d.ts.map +1 -1
  46. package/dist/compliance/schema/index.js +8 -0
  47. package/dist/compliance/schema/index.js.map +1 -1
  48. package/dist/compliance/service/kyc.service.d.ts +153 -8
  49. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  50. package/dist/compliance/service/kyc.service.js +264 -32
  51. package/dist/compliance/service/kyc.service.js.map +1 -1
  52. package/dist/contracts/adapters/audit.d.ts +1 -1
  53. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  54. package/dist/contracts/adapters/audit.js.map +1 -1
  55. package/dist/contracts/adapters/index.d.ts +2 -2
  56. package/dist/contracts/adapters/index.d.ts.map +1 -1
  57. package/dist/contracts/adapters/index.js +1 -1
  58. package/dist/contracts/adapters/index.js.map +1 -1
  59. package/dist/contracts/adapters/kyc.d.ts +90 -5
  60. package/dist/contracts/adapters/kyc.d.ts.map +1 -1
  61. package/dist/contracts/adapters/kyc.js +23 -0
  62. package/dist/contracts/adapters/kyc.js.map +1 -1
  63. package/dist/contracts/schemas/__tests__/events.test.js +1 -1
  64. package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts +2 -0
  65. package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts.map +1 -0
  66. package/dist/contracts/schemas/__tests__/player-schemas.test.js +30 -0
  67. package/dist/contracts/schemas/__tests__/player-schemas.test.js.map +1 -0
  68. package/dist/contracts/schemas/events.d.ts +27 -0
  69. package/dist/contracts/schemas/events.d.ts.map +1 -1
  70. package/dist/contracts/schemas/events.js +12 -2
  71. package/dist/contracts/schemas/events.js.map +1 -1
  72. package/dist/contracts/schemas/platform-config.d.ts +5 -1
  73. package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
  74. package/dist/contracts/schemas/player.d.ts +26 -1
  75. package/dist/contracts/schemas/player.d.ts.map +1 -1
  76. package/dist/contracts/schemas/player.js +14 -0
  77. package/dist/contracts/schemas/player.js.map +1 -1
  78. package/dist/contracts/schemas/tag.d.ts +21 -1
  79. package/dist/contracts/schemas/tag.d.ts.map +1 -1
  80. package/dist/contracts/schemas/tag.js +2 -0
  81. package/dist/contracts/schemas/tag.js.map +1 -1
  82. package/dist/engagement/notifications/contract/index.d.ts +5 -1
  83. package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
  84. package/dist/engagement/notifications/contract/index.js +5 -1
  85. package/dist/engagement/notifications/contract/index.js.map +1 -1
  86. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  87. package/dist/engagement/notifications/plugin.js +43 -3
  88. package/dist/engagement/notifications/plugin.js.map +1 -1
  89. package/dist/engagement/notifications/router/index.d.ts +1 -0
  90. package/dist/engagement/notifications/router/index.d.ts.map +1 -1
  91. package/dist/pam/identity/__tests__/admin-user-directory.test.js +1 -1
  92. package/dist/pam/identity/admin-user-directory.d.ts +1 -1
  93. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  94. package/dist/pam/identity/admin-user-directory.js +6 -3
  95. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  96. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js +5 -2
  97. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js.map +1 -1
  98. package/dist/pam/player-management/__tests__/player.router.test.js +27 -20
  99. package/dist/pam/player-management/__tests__/player.router.test.js.map +1 -1
  100. package/dist/pam/player-management/__tests__/player.service.test.js +4 -31
  101. package/dist/pam/player-management/__tests__/player.service.test.js.map +1 -1
  102. package/dist/pam/player-management/contract/index.d.ts +16 -8
  103. package/dist/pam/player-management/contract/index.d.ts.map +1 -1
  104. package/dist/pam/player-management/contract/index.js +0 -1
  105. package/dist/pam/player-management/contract/index.js.map +1 -1
  106. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  107. package/dist/pam/player-management/plugin.js +3 -2
  108. package/dist/pam/player-management/plugin.js.map +1 -1
  109. package/dist/pam/player-management/router/index.d.ts +15 -9
  110. package/dist/pam/player-management/router/index.d.ts.map +1 -1
  111. package/dist/pam/player-management/router/index.js +48 -16
  112. package/dist/pam/player-management/router/index.js.map +1 -1
  113. package/dist/pam/player-management/service/kyc-status-writer.d.ts +3 -2
  114. package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
  115. package/dist/pam/player-management/service/kyc-status-writer.js +24 -10
  116. package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
  117. package/dist/pam/player-management/service/player.service.d.ts +8 -9
  118. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  119. package/dist/pam/player-management/service/player.service.js +11 -12
  120. package/dist/pam/player-management/service/player.service.js.map +1 -1
  121. package/dist/pam/profile/contract/index.d.ts +2 -0
  122. package/dist/pam/profile/contract/index.d.ts.map +1 -1
  123. package/dist/pam/profile/drizzle/migrations/0001_powerful_tiger_shark.sql +1 -0
  124. package/dist/pam/profile/drizzle/migrations/meta/0001_snapshot.json +191 -0
  125. package/dist/pam/profile/drizzle/migrations/meta/_journal.json +7 -0
  126. package/dist/pam/profile/react/profile.d.ts +2 -2
  127. package/dist/pam/profile/router/index.d.ts +2 -0
  128. package/dist/pam/profile/router/index.d.ts.map +1 -1
  129. package/dist/pam/profile/schema/index.d.ts +3 -3
  130. package/dist/pam/profile/schema/index.d.ts.map +1 -1
  131. package/dist/pam/profile/service/profile.service.d.ts +2 -2
  132. package/dist/pam/shared/player-mapper.d.ts +1 -1
  133. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +20 -3
  134. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +1 -1
  135. package/dist/pam/tag/contract/index.d.ts +26 -0
  136. package/dist/pam/tag/contract/index.d.ts.map +1 -1
  137. package/dist/pam/tag/drizzle/migrations/0004_curvy_wither.sql +2 -0
  138. package/dist/pam/tag/drizzle/migrations/meta/0004_snapshot.json +345 -0
  139. package/dist/pam/tag/drizzle/migrations/meta/_journal.json +7 -0
  140. package/dist/pam/tag/plugin.d.ts.map +1 -1
  141. package/dist/pam/tag/plugin.js +10 -2
  142. package/dist/pam/tag/plugin.js.map +1 -1
  143. package/dist/pam/tag/router/index.d.ts +24 -0
  144. package/dist/pam/tag/router/index.d.ts.map +1 -1
  145. package/dist/pam/tag/schema/index.d.ts +3 -3
  146. package/dist/pam/tag/schema/index.d.ts.map +1 -1
  147. package/dist/pam/tag/seed/data/default-tag-rules.d.ts.map +1 -1
  148. package/dist/pam/tag/seed/data/default-tag-rules.js +14 -0
  149. package/dist/pam/tag/seed/data/default-tag-rules.js.map +1 -1
  150. package/dist/pam/tag/seed/data/default-tags.d.ts.map +1 -1
  151. package/dist/pam/tag/seed/data/default-tags.js +2 -0
  152. package/dist/pam/tag/seed/data/default-tags.js.map +1 -1
  153. package/dist/pam/tag/service/tag-evaluation.service.d.ts +33 -9
  154. package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
  155. package/dist/pam/tag/service/tag-evaluation.service.js +125 -19
  156. package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
  157. package/dist/pam/tag/service/tag-mappers.d.ts +1 -1
  158. package/dist/pam/tag/service/tag-rule.service.d.ts +3 -3
  159. package/dist/pam/tag/service/tag.service.d.ts +8 -8
  160. package/dist/server/kernel/bullmq-job-queue.d.ts.map +1 -1
  161. package/dist/server/kernel/bullmq-job-queue.js +17 -0
  162. package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
  163. package/dist/server/plugin-host/define-plugin.d.ts +2 -2
  164. package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
  165. package/dist/server/plugin-host/define-plugin.js.map +1 -1
  166. package/dist/wallet/__tests__/wallet.service.test.js +18 -0
  167. package/dist/wallet/__tests__/wallet.service.test.js.map +1 -1
  168. package/dist/wallet/contract/index.d.ts +4 -0
  169. package/dist/wallet/contract/index.d.ts.map +1 -1
  170. package/dist/wallet/router/index.d.ts +2 -0
  171. package/dist/wallet/router/index.d.ts.map +1 -1
  172. package/dist/wallet/service/wallet.service.d.ts +1 -2
  173. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  174. package/dist/wallet/service/wallet.service.js +17 -7
  175. package/dist/wallet/service/wallet.service.js.map +1 -1
  176. package/package.json +1 -1
@@ -1,12 +1,20 @@
1
- import { type WalletReader, type IdentityReader, type User } from '@openora/core/contracts';
1
+ import { type WalletReader, type IdentityReader, type AdminUserDirectory, type User } from '@openora/core/contracts';
2
2
  import { TagService } from './tag.service.js';
3
3
  import { TagRuleService } from './tag-rule.service.js';
4
+ export type TagEvaluationServiceDeps = {
5
+ tag: TagService;
6
+ rule: TagRuleService;
7
+ walletReader: WalletReader;
8
+ identityReader: IdentityReader;
9
+ adminUserDirectory: AdminUserDirectory;
10
+ };
4
11
  export declare class TagEvaluationService {
5
12
  private readonly tag;
6
13
  private readonly rule;
7
14
  private readonly walletReader;
8
15
  private readonly identityReader;
9
- constructor(tag: TagService, rule: TagRuleService, walletReader: WalletReader, identityReader: IdentityReader);
16
+ private readonly adminUserDirectory;
17
+ constructor(deps: TagEvaluationServiceDeps);
10
18
  /** Loads a rule; returns null when it does not exist or is disabled. Never throws for a missing row. */
11
19
  private getEnabledRule;
12
20
  /** Idempotently assigns a tag; swallows TagAlreadyInUseError. */
@@ -45,6 +53,7 @@ export declare class TagEvaluationService {
45
53
  userId: User['id'];
46
54
  amount: string;
47
55
  }): Promise<void>;
56
+ private evaluateBasicKycNeededOnDeposit;
48
57
  /**
49
58
  * Evaluates the high_risk rule based on withdrawal amount and frequency.
50
59
  * Called on wallet.withdrawal.completed. Only assigns the tag when a threshold is
@@ -70,21 +79,36 @@ export declare class TagEvaluationService {
70
79
  private evaluateSharedLoginIp;
71
80
  /**
72
81
  * Applies kyc_pending on KYC submission only while the profile still has a pending-like
73
- * status. Does not clear kyc_rejected: that sticky tag remains until a later approved
74
- * state explicitly clears it.
82
+ * status, and clears basic_kyc_needed / advanced_kyc_needed. Does not clear kyc_rejected:
83
+ * that sticky tag remains until a later approved state explicitly clears it.
75
84
  */
76
85
  onKycSubmitted(payload: unknown): Promise<void>;
86
+ private removeKycNeededTags;
87
+ private evaluateBasicKycNeededOnRejection;
77
88
  /**
78
- * Manages kyc_pending / kyc_rejected lifecycle on KYC status changes.
79
- * Called on compliance.kyc.updated. Assignment respects each tag rule's isEnabled flag;
80
- * terminal cleanup still runs so disabled rules cannot strand old active rows.
89
+ * Manages kyc_pending / kyc_rejected / basic_kyc_needed / advanced_kyc_needed lifecycle
90
+ * on KYC status changes. Called on compliance.kyc.updated. Assignment respects each tag
91
+ * rule's isEnabled flag; terminal cleanup still runs so disabled rules cannot strand old
92
+ * active rows.
81
93
  *
82
94
  * Transitions:
83
- * verified / manually_overridden -> remove kyc_pending + kyc_rejected
84
- * rejected -> remove kyc_pending, assign kyc_rejected
95
+ * approved / manually_overridden -> remove kyc_pending + kyc_rejected + basic_kyc_needed + advanced_kyc_needed
96
+ * rejected -> remove kyc_pending, assign kyc_rejected, evaluate basic_kyc_needed
85
97
  * resubmission_requested -> assign kyc_pending, keep kyc_rejected sticky
86
98
  */
87
99
  onKycStatusUpdated(payload: unknown): Promise<void>;
100
+ /**
101
+ * Assigns advanced_kyc_needed as a pure label over compliance's own re-KYC decision.
102
+ * Called on compliance.kyc.reverify_required. Respects the advanced_kyc_needed rule's
103
+ * isEnabled flag.
104
+ */
105
+ onKycReverifyRequired(payload: unknown): Promise<void>;
106
+ /**
107
+ * Assigns high_risk as a pure label over compliance's own device/IP screening decision.
108
+ * Called on compliance.kyc.high_risk_signal_detected. Respects the high_risk rule's
109
+ * isEnabled flag; never auto-removes (risk designation requires an explicit admin clear).
110
+ */
111
+ onKycHighRiskSignalDetected(payload: unknown): Promise<void>;
88
112
  /**
89
113
  * Assigns self_excluded when a player activates self-exclusion.
90
114
  * Called on rg.self_exclusion.activated.
@@ -1 +1 @@
1
- {"version":3,"file":"tag-evaluation.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag-evaluation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EAInB,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAoD,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAgB7E,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAHd,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,cAAc,EACpB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc;IAGjD,wGAAwG;YAC1F,cAAc;IAe5B,iEAAiE;YACnD,YAAY;IA4B1B,uEAAuE;YACzD,YAAY;IAsB1B;;;OAGG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAwCzC,uLAAuL;YACzK,iCAAiC;IAQ/C;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAW5C;;;;;;;;;;OAUG;IACG,2BAA2B,CAC/B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,IAAI,CAAC;IA0BhB;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAmC5C;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO;IAKlC;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO;YAKzB,oBAAoB;YAOpB,qBAAqB;IAyCnC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO;IAiBrC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAkCzC;;;OAGG;IACG,wBAAwB,CAAC,OAAO,EAAE,OAAO;IAS/C;;;OAGG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAK5C;;;;;;;;;;OAUG;IACG,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAuB3C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,kBAAkB;YAMV,iBAAiB;YAoBjB,0BAA0B;IAuBxC;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;CA0ClC"}
1
+ {"version":3,"file":"tag-evaluation.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag-evaluation.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EAGvB,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAoD,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAgB7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,IAAI,EAAE,wBAAwB;IAQ1C,wGAAwG;YAC1F,cAAc;IAe5B,iEAAiE;YACnD,YAAY;IA4B1B,uEAAuE;YACzD,YAAY;IAsB1B;;;OAGG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO;IA4CzC,uLAAuL;YACzK,iCAAiC;IAQ/C;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAW5C;;;;;;;;;;OAUG;IACG,2BAA2B,CAC/B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE;QAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,IAAI,CAAC;YA4BF,+BAA+B;IAgB7C;;;;;;;;OAQG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAuC5C;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,OAAO;IASlC;;;OAGG;IACG,gBAAgB,CAAC,OAAO,EAAE,OAAO;YAKzB,oBAAoB;YAOpB,qBAAqB;IAyCnC;;;;OAIG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO;YAsBvB,mBAAmB;YASnB,iCAAiC;IAe/C;;;;;;;;;;OAUG;IACG,kBAAkB,CAAC,OAAO,EAAE,OAAO;IAwCzC;;;;OAIG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAiB5C;;;;OAIG;IACG,2BAA2B,CAAC,OAAO,EAAE,OAAO;IAkBlD;;;OAGG;IACG,wBAAwB,CAAC,OAAO,EAAE,OAAO;IAS/C;;;OAGG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAK5C;;;;;;;;;;OAUG;IACG,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAuB3C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,kBAAkB;YAMV,iBAAiB;YAoBjB,0BAA0B;IAuBxC;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;CA0ClC"}
@@ -1,4 +1,4 @@
1
- import { domainEventSchemas, } from '@openora/core/contracts';
1
+ import { domainEventSchemas, normalizeKycStatus, } from '@openora/core/contracts';
2
2
  import { moneyToNumber, mapConcurrent } from '@openora/core/server';
3
3
  import { TagAlreadyInUseError, TagAssignmentNotFoundError } from './tag.service.js';
4
4
  import { TagRuleNotFoundError } from './tag-rule.service.js';
@@ -14,11 +14,13 @@ export class TagEvaluationService {
14
14
  rule;
15
15
  walletReader;
16
16
  identityReader;
17
- constructor(tag, rule, walletReader, identityReader) {
18
- this.tag = tag;
19
- this.rule = rule;
20
- this.walletReader = walletReader;
21
- this.identityReader = identityReader;
17
+ adminUserDirectory;
18
+ constructor(deps) {
19
+ this.tag = deps.tag;
20
+ this.rule = deps.rule;
21
+ this.walletReader = deps.walletReader;
22
+ this.identityReader = deps.identityReader;
23
+ this.adminUserDirectory = deps.adminUserDirectory;
22
24
  }
23
25
  /** Loads a rule; returns null when it does not exist or is disabled. Never throws for a missing row. */
24
26
  async getEnabledRule(tagKey) {
@@ -88,7 +90,11 @@ export class TagEvaluationService {
88
90
  * Called on wallet.deposit.completed.
89
91
  */
90
92
  async onDepositCompleted(payload) {
91
- const { userId, amount } = domainEventSchemas['wallet.deposit.completed'].parse(payload);
93
+ const parsed = domainEventSchemas['wallet.deposit.completed'].safeParse(payload);
94
+ if (!parsed.success) {
95
+ return;
96
+ }
97
+ const { userId, amount } = parsed.data;
92
98
  const [highRoller, largeDepositor] = await Promise.all([
93
99
  this.getEnabledRule('high_roller'),
94
100
  this.getEnabledRule('large_depositor'),
@@ -185,6 +191,22 @@ export class TagEvaluationService {
185
191
  }
186
192
  throw e;
187
193
  }
194
+ await this.evaluateBasicKycNeededOnDeposit(userId);
195
+ }
196
+ async evaluateBasicKycNeededOnDeposit(userId) {
197
+ const rule = await this.getEnabledRule('basic_kyc_needed');
198
+ if (!rule) {
199
+ return;
200
+ }
201
+ const [summary] = await this.adminUserDirectory.lookupPlayers([userId]);
202
+ const status = summary?.kycStatus ? normalizeKycStatus(summary.kycStatus) : null;
203
+ if (status === 'not_started' || status === 'rejected') {
204
+ await this.tryAssignTag({
205
+ userId,
206
+ tagKey: 'basic_kyc_needed',
207
+ reason: 'no approved KYC on file despite a completed deposit',
208
+ });
209
+ }
188
210
  }
189
211
  /**
190
212
  * Evaluates the high_risk rule based on withdrawal amount and frequency.
@@ -196,7 +218,11 @@ export class TagEvaluationService {
196
218
  * amount dimension (never resweepable, see _runHighRiskResweep) was involved.
197
219
  */
198
220
  async onWithdrawalCompleted(payload) {
199
- const { userId, amount } = domainEventSchemas['wallet.withdrawal.completed'].parse(payload);
221
+ const parsed = domainEventSchemas['wallet.withdrawal.completed'].safeParse(payload);
222
+ if (!parsed.success) {
223
+ return;
224
+ }
225
+ const { userId, amount } = parsed.data;
200
226
  const rule = await this.getEnabledRule('high_risk');
201
227
  if (!rule) {
202
228
  return;
@@ -230,7 +256,11 @@ export class TagEvaluationService {
230
256
  * - assigns multi_account + bonus_abuser when another player has used this login IP
231
257
  */
232
258
  async onUserLogin(payload) {
233
- const { userId, ip } = domainEventSchemas['identity.user.login'].parse(payload);
259
+ const parsed = domainEventSchemas['identity.user.login'].safeParse(payload);
260
+ if (!parsed.success) {
261
+ return;
262
+ }
263
+ const { userId, ip } = parsed.data;
234
264
  await this.onAuthenticatedLogin({ userId, ip });
235
265
  }
236
266
  /**
@@ -283,15 +313,20 @@ export class TagEvaluationService {
283
313
  }
284
314
  /**
285
315
  * Applies kyc_pending on KYC submission only while the profile still has a pending-like
286
- * status. Does not clear kyc_rejected: that sticky tag remains until a later approved
287
- * state explicitly clears it.
316
+ * status, and clears basic_kyc_needed / advanced_kyc_needed. Does not clear kyc_rejected:
317
+ * that sticky tag remains until a later approved state explicitly clears it.
288
318
  */
289
319
  async onKycSubmitted(payload) {
290
- const { userId } = domainEventSchemas['compliance.kyc.submitted'].parse(payload);
320
+ const parsed = domainEventSchemas['compliance.kyc.submitted'].safeParse(payload);
321
+ if (!parsed.success) {
322
+ return;
323
+ }
324
+ const { userId } = parsed.data;
291
325
  const rule = await this.getEnabledRule('kyc_pending');
292
326
  if (!rule) {
293
327
  return;
294
328
  }
329
+ await this.removeKycNeededTags(userId, 'kyc resubmitted');
295
330
  const status = await this.identityReader.getPlayerKycStatusByUserId(userId);
296
331
  if (!status || !isPendingKycStatus(status)) {
297
332
  return;
@@ -302,21 +337,49 @@ export class TagEvaluationService {
302
337
  reason: 'kyc verification initiated',
303
338
  });
304
339
  }
340
+ async removeKycNeededTags(userId, reason) {
341
+ for (const tagKey of ['basic_kyc_needed', 'advanced_kyc_needed']) {
342
+ const rule = await this.getEnabledRule(tagKey);
343
+ if (rule) {
344
+ await this.tryRemoveTag({ userId, tagKey, reason });
345
+ }
346
+ }
347
+ }
348
+ async evaluateBasicKycNeededOnRejection(userId) {
349
+ const rule = await this.getEnabledRule('basic_kyc_needed');
350
+ if (!rule) {
351
+ return;
352
+ }
353
+ const lifetimeDeposit = await this.walletReader.getLifetimeDeposit(userId);
354
+ if (moneyToNumber(lifetimeDeposit) > 0) {
355
+ await this.tryAssignTag({
356
+ userId,
357
+ tagKey: 'basic_kyc_needed',
358
+ reason: 'kyc rejected with a completed deposit on file',
359
+ });
360
+ }
361
+ }
305
362
  /**
306
- * Manages kyc_pending / kyc_rejected lifecycle on KYC status changes.
307
- * Called on compliance.kyc.updated. Assignment respects each tag rule's isEnabled flag;
308
- * terminal cleanup still runs so disabled rules cannot strand old active rows.
363
+ * Manages kyc_pending / kyc_rejected / basic_kyc_needed / advanced_kyc_needed lifecycle
364
+ * on KYC status changes. Called on compliance.kyc.updated. Assignment respects each tag
365
+ * rule's isEnabled flag; terminal cleanup still runs so disabled rules cannot strand old
366
+ * active rows.
309
367
  *
310
368
  * Transitions:
311
- * verified / manually_overridden -> remove kyc_pending + kyc_rejected
312
- * rejected -> remove kyc_pending, assign kyc_rejected
369
+ * approved / manually_overridden -> remove kyc_pending + kyc_rejected + basic_kyc_needed + advanced_kyc_needed
370
+ * rejected -> remove kyc_pending, assign kyc_rejected, evaluate basic_kyc_needed
313
371
  * resubmission_requested -> assign kyc_pending, keep kyc_rejected sticky
314
372
  */
315
373
  async onKycStatusUpdated(payload) {
316
- const { userId, status } = domainEventSchemas['compliance.kyc.updated'].parse(payload);
317
- if (status === 'verified' || status === 'manually_overridden') {
374
+ const parsed = domainEventSchemas['compliance.kyc.updated'].safeParse(payload);
375
+ if (!parsed.success) {
376
+ return;
377
+ }
378
+ const { userId, status } = parsed.data;
379
+ if (normalizeKycStatus(status) === 'approved' || status === 'manually_overridden') {
318
380
  await this.tryRemoveTag({ userId, tagKey: 'kyc_pending', reason: 'kyc approved' });
319
381
  await this.tryRemoveTag({ userId, tagKey: 'kyc_rejected', reason: 'kyc approved' });
382
+ await this.removeKycNeededTags(userId, 'kyc approved');
320
383
  return;
321
384
  }
322
385
  if (status === 'rejected') {
@@ -329,6 +392,7 @@ export class TagEvaluationService {
329
392
  reason: 'kyc verification rejected',
330
393
  });
331
394
  }
395
+ await this.evaluateBasicKycNeededOnRejection(userId);
332
396
  return;
333
397
  }
334
398
  if (status === 'resubmission_requested') {
@@ -342,6 +406,48 @@ export class TagEvaluationService {
342
406
  }
343
407
  }
344
408
  }
409
+ /**
410
+ * Assigns advanced_kyc_needed as a pure label over compliance's own re-KYC decision.
411
+ * Called on compliance.kyc.reverify_required. Respects the advanced_kyc_needed rule's
412
+ * isEnabled flag.
413
+ */
414
+ async onKycReverifyRequired(payload) {
415
+ const parsed = domainEventSchemas['compliance.kyc.reverify_required'].safeParse(payload);
416
+ if (!parsed.success) {
417
+ return;
418
+ }
419
+ const { userId } = parsed.data;
420
+ const rule = await this.getEnabledRule('advanced_kyc_needed');
421
+ if (!rule) {
422
+ return;
423
+ }
424
+ await this.tryAssignTag({
425
+ userId,
426
+ tagKey: 'advanced_kyc_needed',
427
+ reason: 'cumulative deposits crossed the re-KYC threshold',
428
+ });
429
+ }
430
+ /**
431
+ * Assigns high_risk as a pure label over compliance's own device/IP screening decision.
432
+ * Called on compliance.kyc.high_risk_signal_detected. Respects the high_risk rule's
433
+ * isEnabled flag; never auto-removes (risk designation requires an explicit admin clear).
434
+ */
435
+ async onKycHighRiskSignalDetected(payload) {
436
+ const parsed = domainEventSchemas['compliance.kyc.high_risk_signal_detected'].safeParse(payload);
437
+ if (!parsed.success) {
438
+ return;
439
+ }
440
+ const { userId } = parsed.data;
441
+ const rule = await this.getEnabledRule('high_risk');
442
+ if (!rule) {
443
+ return;
444
+ }
445
+ await this.tryAssignTag({
446
+ userId,
447
+ tagKey: 'high_risk',
448
+ reason: 'kyc device/IP screening flagged high risk',
449
+ });
450
+ }
345
451
  /**
346
452
  * Assigns self_excluded when a player activates self-exclusion.
347
453
  * Called on rg.self_exclusion.activated.
@@ -1 +1 @@
1
- {"version":3,"file":"tag-evaluation.service.js","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag-evaluation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag-evaluation.service.js","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag-evaluation.service.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare function toTag(row: typeof tag.$inferSelect): import("@openora/co
6
6
  id: string;
7
7
  createdAt: Date;
8
8
  updatedAt: Date;
9
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
9
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
10
10
  isSticky: boolean;
11
11
  }, "createdAt" | "updatedAt">;
12
12
  export declare function toPlayerTagWithTag(pt: typeof playerTag.$inferSelect, tagKey: TagKey): PlayerTagWithTag;
@@ -8,7 +8,7 @@ export declare class TagRuleService {
8
8
  listTagRules(): Promise<{
9
9
  id: string;
10
10
  tagId: string;
11
- tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
11
+ tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
12
12
  isEnabled: boolean;
13
13
  threshold: string | null;
14
14
  thresholdDays: number | null;
@@ -19,7 +19,7 @@ export declare class TagRuleService {
19
19
  getTagRule(tagKey: TagKey): Promise<{
20
20
  id: string;
21
21
  tagId: string;
22
- tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
22
+ tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
23
23
  isEnabled: boolean;
24
24
  threshold: string | null;
25
25
  thresholdDays: number | null;
@@ -30,7 +30,7 @@ export declare class TagRuleService {
30
30
  upsertTagRule(input: UpsertTagRuleInput, actorId: User['id'], meta?: ClientMeta): Promise<{
31
31
  id: string;
32
32
  tagId: string;
33
- tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
33
+ tagKey: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
34
34
  isEnabled: boolean;
35
35
  threshold: string | null;
36
36
  thresholdDays: number | null;
@@ -14,7 +14,7 @@ export declare class TagService implements PlayerTags {
14
14
  private readonly drizzle;
15
15
  private readonly event;
16
16
  constructor(drizzle: DrizzleService, event: EventBus);
17
- getActiveTagKeys(userIds: readonly string[]): Promise<Map<string, ("high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level")[]>>;
17
+ getActiveTagKeys(userIds: readonly string[]): Promise<Map<string, ("high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level")[]>>;
18
18
  /**
19
19
  * Active holders (auth `userId`, not `player.id`) of tagKey, each with the
20
20
  * assignMetadata recorded at assignment time. Internal to this module - used only by
@@ -32,7 +32,7 @@ export declare class TagService implements PlayerTags {
32
32
  id: string;
33
33
  createdAt: Date;
34
34
  updatedAt: Date;
35
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
35
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
36
36
  isSticky: boolean;
37
37
  }, "createdAt" | "updatedAt">>;
38
38
  deleteTag(args: DeleteTagInput, actorId: User['id']): Promise<boolean>;
@@ -53,7 +53,7 @@ export declare class TagService implements PlayerTags {
53
53
  createdAt: string;
54
54
  updatedAt: string;
55
55
  tag: {
56
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
56
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
57
57
  };
58
58
  assignMetadata: {
59
59
  amountBreach: {
@@ -75,7 +75,7 @@ export declare class TagService implements PlayerTags {
75
75
  id: string;
76
76
  createdAt: Date;
77
77
  updatedAt: Date;
78
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
78
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
79
79
  isSticky: boolean;
80
80
  }, "createdAt" | "updatedAt">[]>;
81
81
  private _assignPlayerTagOnTx;
@@ -93,7 +93,7 @@ export declare class TagService implements PlayerTags {
93
93
  createdAt: string;
94
94
  updatedAt: string;
95
95
  tag: {
96
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
96
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
97
97
  };
98
98
  assignMetadata: {
99
99
  amountBreach: {
@@ -130,7 +130,7 @@ export declare class TagService implements PlayerTags {
130
130
  createdAt: string;
131
131
  updatedAt: string;
132
132
  tag: {
133
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
133
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
134
134
  };
135
135
  assignMetadata: {
136
136
  amountBreach: {
@@ -159,7 +159,7 @@ export declare class TagService implements PlayerTags {
159
159
  createdAt: string;
160
160
  updatedAt: string;
161
161
  tag: {
162
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
162
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
163
163
  };
164
164
  assignMetadata: {
165
165
  amountBreach: {
@@ -198,7 +198,7 @@ export declare class TagService implements PlayerTags {
198
198
  createdAt: string;
199
199
  updatedAt: string;
200
200
  tag: {
201
- key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
201
+ key: "high_roller" | "vip" | "bonus_abuser" | "high_risk" | "inactive" | "large_depositor" | "self_excluded" | "kyc_pending" | "kyc_rejected" | "basic_kyc_needed" | "advanced_kyc_needed" | "test_account" | "dormant_high_roller" | "withdrawal_review" | "multi_account" | "level";
202
202
  };
203
203
  assignMetadata: {
204
204
  amountBreach: {
@@ -1 +1 @@
1
- {"version":3,"file":"bullmq-job-queue.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/bullmq-job-queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EAEb,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAwBjC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IA+B5F,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAqC5D,QAAQ,CAAC,CAAC,EACR,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC;IAWhB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,QAAQ;YAUF,UAAU;CAwBzB"}
1
+ {"version":3,"file":"bullmq-job-queue.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/bullmq-job-queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EAEb,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAwCjC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;gBAExC,QAAQ,EAAE,MAAM;IAK5B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAiC5F,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI;IAqC5D,QAAQ,CAAC,CAAC,EACR,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC;IAWhB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,QAAQ;YAUF,UAAU;CAwBzB"}
@@ -1,5 +1,20 @@
1
1
  import { Queue, Worker } from 'bullmq';
2
2
  import { createLogger } from './logger.js';
3
+ // BullMQ's default behavior is to retain every completed/failed job forever. Combined
4
+ // with `jobId` (`idempotencyKey`) dedup, that means an id can NEVER be reused - "add a
5
+ // job with an id that already exists" is silently a no-op regardless of how long ago or
6
+ // how differently the world has moved on since the earlier job with that id ran. A
7
+ // caller who legitimately re-derives the SAME idempotencyKey for a genuinely new unit of
8
+ // work (eg a status-and-reference-keyed sync job re-firing after an intervening
9
+ // different decision) would have that later, real job dropped forever with no error.
10
+ // Bounding retention lets BullMQ evict old completed/failed jobs so the id becomes
11
+ // reusable again - a systemic safety net for every queue on this driver, not just one
12
+ // caller's workaround. This does not replace an idempotencyKey scheme that makes
13
+ // dedup-vs-genuinely-new unambiguous in the first place (see compliance's
14
+ // `kyc-decision-sync` for that) - it only bounds unlimited Redis growth and stops a
15
+ // dedup key from becoming permanently poisoned.
16
+ const RETAIN_COMPLETED = { age: 24 * 60 * 60, count: 10_000 };
17
+ const RETAIN_FAILED = { age: 7 * 24 * 60 * 60, count: 10_000 };
3
18
  // BullMQ reserves ':' as its Redis key separator and rejects an all-digit id, so an
4
19
  // `idempotencyKey` is percent-encoded into a safe job id. The encoding is injective -
5
20
  // two distinct keys can never collapse onto one job id and silently dedupe apart.
@@ -48,6 +63,8 @@ export class BullMqJobQueue {
48
63
  backoff: opts.backoff ? { type: opts.backoff.type, delay: opts.backoff.delayMs } : undefined,
49
64
  priority: opts.priority,
50
65
  // ttlMs has no native BullMQ equivalent - ignored (the port allows driver variance).
66
+ removeOnComplete: RETAIN_COMPLETED,
67
+ removeOnFail: RETAIN_FAILED,
51
68
  };
52
69
  return this.getQueue(queue)
53
70
  .add(queue, envelope, jobOpts)
@@ -1 +1 @@
1
- {"version":3,"file":"bullmq-job-queue.js","sourceRoot":"","sources":["../../../src/server/kernel/bullmq-job-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bullmq-job-queue.js","sourceRoot":"","sources":["../../../src/server/kernel/bullmq-job-queue.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Container, Factory } from '../kernel/index.js';
2
- import type { SealedToken, Token, WorkerRegistration } from '@openora/core/contracts';
2
+ import type { EventEnvelope, SealedToken, Token, WorkerRegistration } from '@openora/core/contracts';
3
3
  export type McpToolDefinition = {
4
4
  name: string;
5
5
  description: string;
@@ -7,7 +7,7 @@ export type McpToolDefinition = {
7
7
  handler: (input: unknown) => unknown | Promise<unknown>;
8
8
  };
9
9
  export type RouterFactory = (c: Container) => unknown;
10
- export type EventHandler = (payload: unknown) => void | Promise<void>;
10
+ export type EventHandler = (payload: unknown, envelope?: EventEnvelope) => void | Promise<void>;
11
11
  export type ModuleRegistry = {
12
12
  provide<T>(token: Token<T>, factory: Factory<T>): void;
13
13
  provideSealed<T>(token: SealedToken<T>, factory: Factory<T>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG;IAE3B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAIvD,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnE,OAAO,EAAE;QACP,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACtC,CAAC;IACF,KAAK,EAAE;QACL,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;IAEF,IAAI,EAAE;QACJ,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC;IACF,GAAG,EAAE;QACH,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC1C,MAAM,IAAI,iBAAiB,EAAE,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAEjE"}
1
+ {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,KAAK,EACL,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;AAEtD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,MAAM,cAAc,GAAG;IAE3B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAIvD,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnE,OAAO,EAAE;QACP,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACtC,CAAC;IACF,KAAK,EAAE;QACL,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;QACjD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IACF,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;KACvC,CAAC;IAEF,IAAI,EAAE;QACJ,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC;IACF,GAAG,EAAE;QACH,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAC1C,MAAM,IAAI,iBAAiB,EAAE,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAEjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"AA4DA,MAAM,UAAU,YAAY,CAAC,UAA4B;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"AAiEA,MAAM,UAAU,YAAY,CAAC,UAA4B;IACvD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -568,6 +568,24 @@ describe('WalletService.listWithdrawals (real PG)', () => {
568
568
  expect(total).toBe(1);
569
569
  expect(items[0]?.userId).toBe(verified.userId);
570
570
  });
571
+ it('matches a legacy directory-reported "verified" when filtering by the canonical "approved"', async () => {
572
+ const legacyVerified = await seedWallet();
573
+ const pendingKyc = await seedWallet();
574
+ await seedTx(legacyVerified.id);
575
+ await seedTx(pendingKyc.id);
576
+ const directory = makeDirectory([
577
+ { userId: legacyVerified.userId, username: 'a', kycStatus: 'verified' },
578
+ { userId: pendingKyc.userId, username: 'b', kycStatus: 'pending' },
579
+ ]);
580
+ const { svc } = makeService({ directory });
581
+ const { items, total } = await svc.listWithdrawals({
582
+ page: 1,
583
+ limit: 20,
584
+ kycStatus: 'approved',
585
+ });
586
+ expect(total).toBe(1);
587
+ expect(items[0]?.userId).toBe(legacyVerified.userId);
588
+ });
571
589
  it('slices the requested page out of the filtered set', async () => {
572
590
  const w = await seedWallet();
573
591
  await seedTx(w.id, { createdAt: new Date('2026-01-01T00:00:00.000Z') });