@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/contract/index.d.ts +2 -0
- package/dist/admin-console/contract/index.d.ts.map +1 -1
- package/dist/admin-console/router/index.d.ts +1 -0
- package/dist/admin-console/router/index.d.ts.map +1 -1
- package/dist/admin-console/service/backoffice.service.d.ts +1 -1
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.js +21 -1
- package/dist/audit/plugin.js.map +1 -1
- package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js +66 -12
- package/dist/compliance/__tests__/hmac-kyc-webhook-verifier.test.js.map +1 -1
- package/dist/compliance/__tests__/kyc-admin.router.test.d.ts +2 -0
- package/dist/compliance/__tests__/kyc-admin.router.test.d.ts.map +1 -0
- package/dist/compliance/__tests__/kyc-admin.router.test.js +191 -0
- package/dist/compliance/__tests__/kyc-admin.router.test.js.map +1 -0
- package/dist/compliance/__tests__/kyc-webhook.router.test.d.ts +2 -0
- package/dist/compliance/__tests__/kyc-webhook.router.test.d.ts.map +1 -0
- package/dist/compliance/__tests__/kyc-webhook.router.test.js +148 -0
- package/dist/compliance/__tests__/kyc-webhook.router.test.js.map +1 -0
- package/dist/compliance/__tests__/kyc.service.test.js +11 -10
- package/dist/compliance/__tests__/kyc.service.test.js.map +1 -1
- package/dist/compliance/__tests__/rg.router.test.js +5 -1
- package/dist/compliance/__tests__/rg.router.test.js.map +1 -1
- package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts +16 -3
- package/dist/compliance/adapters/hmac-kyc-webhook-verifier.d.ts.map +1 -1
- package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js +47 -5
- package/dist/compliance/adapters/hmac-kyc-webhook-verifier.js.map +1 -1
- package/dist/compliance/contract/index.d.ts +312 -0
- package/dist/compliance/contract/index.d.ts.map +1 -1
- package/dist/compliance/contract/index.js +50 -1
- package/dist/compliance/contract/index.js.map +1 -1
- package/dist/compliance/drizzle/migrations/0002_condemned_monster_badoon.sql +3 -0
- package/dist/compliance/drizzle/migrations/0003_public_spirit.sql +1 -0
- package/dist/compliance/drizzle/migrations/meta/0002_snapshot.json +673 -0
- package/dist/compliance/drizzle/migrations/meta/0003_snapshot.json +679 -0
- package/dist/compliance/drizzle/migrations/meta/_journal.json +14 -0
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.js +23 -3
- package/dist/compliance/plugin.js.map +1 -1
- package/dist/compliance/router/index.d.ts +186 -2
- package/dist/compliance/router/index.d.ts.map +1 -1
- package/dist/compliance/router/index.js +52 -3
- package/dist/compliance/router/index.js.map +1 -1
- package/dist/compliance/schema/index.d.ts +65 -3
- package/dist/compliance/schema/index.d.ts.map +1 -1
- package/dist/compliance/schema/index.js +8 -0
- package/dist/compliance/schema/index.js.map +1 -1
- package/dist/compliance/service/kyc.service.d.ts +153 -8
- package/dist/compliance/service/kyc.service.d.ts.map +1 -1
- package/dist/compliance/service/kyc.service.js +264 -32
- package/dist/compliance/service/kyc.service.js.map +1 -1
- package/dist/contracts/adapters/audit.d.ts +1 -1
- package/dist/contracts/adapters/audit.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.js.map +1 -1
- package/dist/contracts/adapters/index.d.ts +2 -2
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js +1 -1
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/adapters/kyc.d.ts +90 -5
- package/dist/contracts/adapters/kyc.d.ts.map +1 -1
- package/dist/contracts/adapters/kyc.js +23 -0
- package/dist/contracts/adapters/kyc.js.map +1 -1
- package/dist/contracts/schemas/__tests__/events.test.js +1 -1
- package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts +2 -0
- package/dist/contracts/schemas/__tests__/player-schemas.test.d.ts.map +1 -0
- package/dist/contracts/schemas/__tests__/player-schemas.test.js +30 -0
- package/dist/contracts/schemas/__tests__/player-schemas.test.js.map +1 -0
- package/dist/contracts/schemas/events.d.ts +27 -0
- package/dist/contracts/schemas/events.d.ts.map +1 -1
- package/dist/contracts/schemas/events.js +12 -2
- package/dist/contracts/schemas/events.js.map +1 -1
- package/dist/contracts/schemas/platform-config.d.ts +5 -1
- package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
- package/dist/contracts/schemas/player.d.ts +26 -1
- package/dist/contracts/schemas/player.d.ts.map +1 -1
- package/dist/contracts/schemas/player.js +14 -0
- package/dist/contracts/schemas/player.js.map +1 -1
- package/dist/contracts/schemas/tag.d.ts +21 -1
- package/dist/contracts/schemas/tag.d.ts.map +1 -1
- package/dist/contracts/schemas/tag.js +2 -0
- package/dist/contracts/schemas/tag.js.map +1 -1
- package/dist/engagement/notifications/contract/index.d.ts +5 -1
- package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
- package/dist/engagement/notifications/contract/index.js +5 -1
- package/dist/engagement/notifications/contract/index.js.map +1 -1
- package/dist/engagement/notifications/plugin.d.ts.map +1 -1
- package/dist/engagement/notifications/plugin.js +43 -3
- package/dist/engagement/notifications/plugin.js.map +1 -1
- package/dist/engagement/notifications/router/index.d.ts +1 -0
- package/dist/engagement/notifications/router/index.d.ts.map +1 -1
- package/dist/pam/identity/__tests__/admin-user-directory.test.js +1 -1
- package/dist/pam/identity/admin-user-directory.d.ts +1 -1
- package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
- package/dist/pam/identity/admin-user-directory.js +6 -3
- package/dist/pam/identity/admin-user-directory.js.map +1 -1
- package/dist/pam/player-management/__tests__/kyc-status-writer.test.js +5 -2
- package/dist/pam/player-management/__tests__/kyc-status-writer.test.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.router.test.js +27 -20
- package/dist/pam/player-management/__tests__/player.router.test.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.service.test.js +4 -31
- package/dist/pam/player-management/__tests__/player.service.test.js.map +1 -1
- package/dist/pam/player-management/contract/index.d.ts +16 -8
- package/dist/pam/player-management/contract/index.d.ts.map +1 -1
- package/dist/pam/player-management/contract/index.js +0 -1
- package/dist/pam/player-management/contract/index.js.map +1 -1
- package/dist/pam/player-management/plugin.d.ts.map +1 -1
- package/dist/pam/player-management/plugin.js +3 -2
- package/dist/pam/player-management/plugin.js.map +1 -1
- package/dist/pam/player-management/router/index.d.ts +15 -9
- package/dist/pam/player-management/router/index.d.ts.map +1 -1
- package/dist/pam/player-management/router/index.js +48 -16
- package/dist/pam/player-management/router/index.js.map +1 -1
- package/dist/pam/player-management/service/kyc-status-writer.d.ts +3 -2
- package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
- package/dist/pam/player-management/service/kyc-status-writer.js +24 -10
- package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
- package/dist/pam/player-management/service/player.service.d.ts +8 -9
- package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
- package/dist/pam/player-management/service/player.service.js +11 -12
- package/dist/pam/player-management/service/player.service.js.map +1 -1
- package/dist/pam/profile/contract/index.d.ts +2 -0
- package/dist/pam/profile/contract/index.d.ts.map +1 -1
- package/dist/pam/profile/drizzle/migrations/0001_powerful_tiger_shark.sql +1 -0
- package/dist/pam/profile/drizzle/migrations/meta/0001_snapshot.json +191 -0
- package/dist/pam/profile/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/pam/profile/react/profile.d.ts +2 -2
- package/dist/pam/profile/router/index.d.ts +2 -0
- package/dist/pam/profile/router/index.d.ts.map +1 -1
- package/dist/pam/profile/schema/index.d.ts +3 -3
- package/dist/pam/profile/schema/index.d.ts.map +1 -1
- package/dist/pam/profile/service/profile.service.d.ts +2 -2
- package/dist/pam/shared/player-mapper.d.ts +1 -1
- package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +20 -3
- package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +1 -1
- package/dist/pam/tag/contract/index.d.ts +26 -0
- package/dist/pam/tag/contract/index.d.ts.map +1 -1
- package/dist/pam/tag/drizzle/migrations/0004_curvy_wither.sql +2 -0
- package/dist/pam/tag/drizzle/migrations/meta/0004_snapshot.json +345 -0
- package/dist/pam/tag/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/pam/tag/plugin.d.ts.map +1 -1
- package/dist/pam/tag/plugin.js +10 -2
- package/dist/pam/tag/plugin.js.map +1 -1
- package/dist/pam/tag/router/index.d.ts +24 -0
- package/dist/pam/tag/router/index.d.ts.map +1 -1
- package/dist/pam/tag/schema/index.d.ts +3 -3
- package/dist/pam/tag/schema/index.d.ts.map +1 -1
- package/dist/pam/tag/seed/data/default-tag-rules.d.ts.map +1 -1
- package/dist/pam/tag/seed/data/default-tag-rules.js +14 -0
- package/dist/pam/tag/seed/data/default-tag-rules.js.map +1 -1
- package/dist/pam/tag/seed/data/default-tags.d.ts.map +1 -1
- package/dist/pam/tag/seed/data/default-tags.js +2 -0
- package/dist/pam/tag/seed/data/default-tags.js.map +1 -1
- package/dist/pam/tag/service/tag-evaluation.service.d.ts +33 -9
- package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag-evaluation.service.js +125 -19
- package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
- package/dist/pam/tag/service/tag-mappers.d.ts +1 -1
- package/dist/pam/tag/service/tag-rule.service.d.ts +3 -3
- package/dist/pam/tag/service/tag.service.d.ts +8 -8
- package/dist/server/kernel/bullmq-job-queue.d.ts.map +1 -1
- package/dist/server/kernel/bullmq-job-queue.js +17 -0
- package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
- package/dist/server/plugin-host/define-plugin.d.ts +2 -2
- package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
- package/dist/server/plugin-host/define-plugin.js.map +1 -1
- package/dist/wallet/__tests__/wallet.service.test.js +18 -0
- package/dist/wallet/__tests__/wallet.service.test.js.map +1 -1
- package/dist/wallet/contract/index.d.ts +4 -0
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/router/index.d.ts +2 -0
- package/dist/wallet/router/index.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.d.ts +1 -2
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +17 -7
- package/dist/wallet/service/wallet.service.js.map +1 -1
- 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
|
-
|
|
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:
|
|
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
|
|
79
|
-
* Called on compliance.kyc.updated. Assignment respects each tag
|
|
80
|
-
* terminal cleanup still runs so disabled rules cannot strand old
|
|
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
|
-
*
|
|
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,
|
|
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
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
307
|
-
* Called on compliance.kyc.updated. Assignment respects each tag
|
|
308
|
-
* terminal cleanup still runs so disabled rules cannot strand old
|
|
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
|
-
*
|
|
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
|
|
317
|
-
if (
|
|
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;
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsD,MAAM,QAAQ,CAAC;AAS3F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bullmq-job-queue.js","sourceRoot":"","sources":["../../../src/server/kernel/bullmq-job-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAsD,MAAM,QAAQ,CAAC;AAS3F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,sFAAsF;AACtF,uFAAuF;AACvF,wFAAwF;AACxF,mFAAmF;AACnF,yFAAyF;AACzF,gFAAgF;AAChF,qFAAqF;AACrF,mFAAmF;AACnF,sFAAsF;AACtF,iFAAiF;AACjF,0EAA0E;AAC1E,oFAAoF;AACpF,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9D,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAO/D,oFAAoF;AACpF,sFAAsF;AACtF,kFAAkF;AAClF,SAAS,OAAO,CAAC,cAAsB;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;IACR,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC1C,UAAU,CAAoB;IAC9B,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC/C,OAAO,GAA0B,EAAE,CAAC;IACpC,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpD,YAAY,QAAgB;QAC1B,kFAAkF;QAClF,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,CAAI,KAAgB,EAAE,OAAU,EAAE,OAAuB,EAAE;QAChE,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/B,mFAAmF;YACnF,qFAAqF;YACrF,uEAAuE;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,EACT,sHAAsH,CACvH,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAgB;YAC5B,OAAO;YACP,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE;SAC5D,CAAC;QAEF,MAAM,OAAO,GAAgB;YAC3B,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;YAC5F,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,qFAAqF;YACrF,gBAAgB,EAAE,gBAAgB;YAClC,YAAY,EAAE,aAAa;SAC5B,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aACxB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;aAC7B,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAI,YAAmC;QACnD,MAAM,GAAG,GAAG,YAAyB,CAAC;QACtC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;QAErC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,SAAS,EACT,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,GAAG,GAAwB;gBAC/B,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;gBAChB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC3C,OAAO,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC;gBAC7B,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBACnC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;aACpB,CAAC;YACF,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,gFAAgF;QAChF,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,EAAE,CACrF,CAAC;QAEF,oFAAoF;QACpF,mFAAmF;QACnF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YACD,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,YAAY,GAAG,WAAW,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CACN,KAAgB,EAChB,UAAkB,EAClB,OAAU,EACV,MAAqB;QAErB,MAAM,QAAQ,GAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aACxB,kBAAkB,CACjB,UAAU,EACV,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EACpE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAChC;aACA,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,UAAU,CAAC,KAAgB,EAAE,UAAkB;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;aACxB,kBAAkB,CAAC,UAAU,CAAC;aAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,gFAAgF;QAChF,2BAA2B;QAC3B,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,QAAQ,CAAC,KAAgB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,KAAK,CAAc,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,MAAiB,EAAE,GAAqB,EAAE,KAAY;QAC7E,MAAM,GAAG,GAAwB;YAC/B,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;YACzB,OAAO,EAAE,GAAG,CAAC,YAAY;YACzB,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;SACpB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EACpE,yDAAyD,CAC1D,CAAC;QACF,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAChD,4CAA4C,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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,
|
|
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":"
|
|
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') });
|