@openora/core 0.4.1-canary.30 → 0.4.1-canary.33
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 +57 -0
- package/dist/admin-console/contract/index.d.ts.map +1 -1
- package/dist/admin-console/contract/index.js +11 -3
- package/dist/admin-console/contract/index.js.map +1 -1
- package/dist/admin-console/router/index.d.ts +25 -0
- package/dist/admin-console/router/index.d.ts.map +1 -1
- package/dist/admin-console/router/index.js +7 -1
- package/dist/admin-console/router/index.js.map +1 -1
- package/dist/admin-console/service/backoffice.service.d.ts +2 -2
- package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
- package/dist/admin-console/service/backoffice.service.js +5 -3
- package/dist/admin-console/service/backoffice.service.js.map +1 -1
- package/dist/audit/contract/index.d.ts +58 -0
- package/dist/audit/contract/index.d.ts.map +1 -1
- package/dist/audit/contract/index.js +20 -2
- package/dist/audit/contract/index.js.map +1 -1
- package/dist/audit/router/index.d.ts +24 -0
- package/dist/audit/router/index.d.ts.map +1 -1
- package/dist/audit/service/audit.service.d.ts.map +1 -1
- package/dist/audit/service/audit.service.js +15 -3
- package/dist/audit/service/audit.service.js.map +1 -1
- package/dist/compliance/contract/index.d.ts +17 -5
- package/dist/compliance/contract/index.d.ts.map +1 -1
- package/dist/compliance/contract/rg.d.ts +42 -8
- package/dist/compliance/contract/rg.d.ts.map +1 -1
- package/dist/compliance/contract/rg.js +12 -1
- package/dist/compliance/contract/rg.js.map +1 -1
- package/dist/compliance/router/index.d.ts +17 -5
- package/dist/compliance/router/index.d.ts.map +1 -1
- package/dist/compliance/schema/index.d.ts +1 -1
- package/dist/compliance/service/rg-monitoring.service.d.ts.map +1 -1
- package/dist/compliance/service/rg-monitoring.service.js +12 -3
- package/dist/compliance/service/rg-monitoring.service.js.map +1 -1
- package/dist/contracts/adapters/admin-user-directory.d.ts +5 -0
- package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-user-directory.js +8 -0
- package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
- package/dist/contracts/adapters/admin-wallet-reporting.d.ts +5 -0
- package/dist/contracts/adapters/admin-wallet-reporting.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-wallet-reporting.js +9 -0
- package/dist/contracts/adapters/admin-wallet-reporting.js.map +1 -1
- package/dist/contracts/adapters/index.d.ts +4 -4
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js +2 -2
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/kit.d.ts +9 -0
- package/dist/contracts/kit.d.ts.map +1 -1
- package/dist/contracts/kit.js +1 -0
- package/dist/contracts/kit.js.map +1 -1
- package/dist/contracts/schemas/common.d.ts +8 -0
- package/dist/contracts/schemas/common.d.ts.map +1 -1
- package/dist/contracts/schemas/common.js +7 -0
- package/dist/contracts/schemas/common.js.map +1 -1
- package/dist/contracts/schemas/compliance.d.ts +1 -1
- package/dist/contracts/schemas/identity.d.ts +6 -0
- package/dist/contracts/schemas/identity.d.ts.map +1 -1
- package/dist/contracts/schemas/identity.js +2 -0
- package/dist/contracts/schemas/identity.js.map +1 -1
- package/dist/contracts/schemas/player.d.ts +26 -0
- package/dist/contracts/schemas/player.d.ts.map +1 -1
- package/dist/contracts/schemas/player.js +14 -1
- package/dist/contracts/schemas/player.js.map +1 -1
- package/dist/engagement/chat/contract/index.d.ts +1 -5
- package/dist/engagement/chat/contract/index.d.ts.map +1 -1
- package/dist/engagement/chat/contract/index.js +2 -4
- package/dist/engagement/chat/contract/index.js.map +1 -1
- package/dist/engagement/chat/drizzle/migrations/0001_cloudy_groot.sql +1 -1
- package/dist/iam/__tests__/iam.service.test.js +1 -0
- package/dist/iam/__tests__/iam.service.test.js.map +1 -1
- package/dist/iam/contract/index.d.ts +48 -0
- package/dist/iam/contract/index.d.ts.map +1 -1
- package/dist/iam/contract/index.js +26 -4
- package/dist/iam/contract/index.js.map +1 -1
- package/dist/iam/router/index.d.ts +27 -0
- package/dist/iam/router/index.d.ts.map +1 -1
- package/dist/iam/service/iam.service.d.ts +7 -10
- package/dist/iam/service/iam.service.d.ts.map +1 -1
- package/dist/iam/service/iam.service.js +34 -6
- package/dist/iam/service/iam.service.js.map +1 -1
- package/dist/pam/identity/__tests__/identity.service.test.js +31 -0
- package/dist/pam/identity/__tests__/identity.service.test.js.map +1 -1
- package/dist/pam/identity/__tests__/phone-login.service.test.js +47 -7
- package/dist/pam/identity/__tests__/phone-login.service.test.js.map +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 +19 -3
- package/dist/pam/identity/admin-user-directory.js.map +1 -1
- package/dist/pam/identity/contract/index.d.ts +16 -0
- package/dist/pam/identity/contract/index.d.ts.map +1 -1
- package/dist/pam/identity/contract/index.js +8 -2
- package/dist/pam/identity/contract/index.js.map +1 -1
- package/dist/pam/identity/plugin.d.ts.map +1 -1
- package/dist/pam/identity/plugin.js +3 -1
- package/dist/pam/identity/plugin.js.map +1 -1
- package/dist/pam/identity/router/index.d.ts +9 -0
- package/dist/pam/identity/router/index.d.ts.map +1 -1
- package/dist/pam/identity/router/index.js +7 -1
- package/dist/pam/identity/router/index.js.map +1 -1
- package/dist/pam/identity/service/identity.service.d.ts +6 -2
- package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
- package/dist/pam/identity/service/identity.service.js +84 -7
- package/dist/pam/identity/service/identity.service.js.map +1 -1
- package/dist/pam/identity/service/phone-login.service.d.ts +8 -4
- package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
- package/dist/pam/identity/service/phone-login.service.js +59 -10
- package/dist/pam/identity/service/phone-login.service.js.map +1 -1
- package/dist/pam/identity/service/session.service.d.ts +5 -2
- package/dist/pam/identity/service/session.service.d.ts.map +1 -1
- package/dist/pam/identity/service/session.service.js +10 -4
- package/dist/pam/identity/service/session.service.js.map +1 -1
- package/dist/pam/player-management/contract/index.d.ts +14 -0
- package/dist/pam/player-management/contract/index.d.ts.map +1 -1
- package/dist/pam/player-management/router/index.d.ts +14 -0
- package/dist/pam/player-management/router/index.d.ts.map +1 -1
- package/dist/pam/player-management/service/player.service.d.ts +3 -5
- package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
- package/dist/pam/player-management/service/player.service.js +12 -3
- package/dist/pam/player-management/service/player.service.js.map +1 -1
- package/dist/pam/player-note/contract/index.d.ts +14 -0
- package/dist/pam/player-note/contract/index.d.ts.map +1 -1
- package/dist/pam/player-note/contract/index.js +8 -2
- package/dist/pam/player-note/contract/index.js.map +1 -1
- package/dist/pam/player-note/router/index.d.ts +8 -0
- package/dist/pam/player-note/router/index.d.ts.map +1 -1
- package/dist/pam/player-note/router/index.js +7 -1
- package/dist/pam/player-note/router/index.js.map +1 -1
- package/dist/pam/player-note/service/player-note.service.d.ts +5 -3
- package/dist/pam/player-note/service/player-note.service.d.ts.map +1 -1
- package/dist/pam/player-note/service/player-note.service.js +5 -3
- package/dist/pam/player-note/service/player-note.service.js.map +1 -1
- package/dist/pam/tag/__tests__/tag.service.test.js +2 -2
- package/dist/pam/tag/__tests__/tag.service.test.js.map +1 -1
- package/dist/pam/tag/contract/index.d.ts +14 -0
- package/dist/pam/tag/contract/index.d.ts.map +1 -1
- package/dist/pam/tag/contract/index.js +8 -2
- package/dist/pam/tag/contract/index.js.map +1 -1
- package/dist/pam/tag/router/index.d.ts +8 -0
- package/dist/pam/tag/router/index.d.ts.map +1 -1
- package/dist/pam/tag/router/index.js +7 -1
- package/dist/pam/tag/router/index.js.map +1 -1
- package/dist/pam/tag/service/tag.service.d.ts +5 -2
- package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag.service.js +9 -2
- package/dist/pam/tag/service/tag.service.js.map +1 -1
- package/dist/server/auth/admin-guard.d.ts.map +1 -1
- package/dist/server/auth/admin-guard.js +27 -5
- package/dist/server/auth/admin-guard.js.map +1 -1
- package/dist/server/kernel/router-utils.d.ts.map +1 -1
- package/dist/server/kernel/router-utils.js +9 -2
- package/dist/server/kernel/router-utils.js.map +1 -1
- package/dist/server/plugin-host/__tests__/core-plugins.test.d.ts +2 -0
- package/dist/server/plugin-host/__tests__/core-plugins.test.d.ts.map +1 -0
- package/dist/server/plugin-host/__tests__/core-plugins.test.js +27 -0
- package/dist/server/plugin-host/__tests__/core-plugins.test.js.map +1 -0
- package/dist/server/plugin-host/core-plugins.d.ts.map +1 -1
- package/dist/server/plugin-host/core-plugins.js +3 -0
- package/dist/server/plugin-host/core-plugins.js.map +1 -1
- package/dist/wallet/__tests__/wallet.router.test.js +7 -1
- package/dist/wallet/__tests__/wallet.router.test.js.map +1 -1
- package/dist/wallet/admin-reporting.d.ts +1 -1
- package/dist/wallet/admin-reporting.d.ts.map +1 -1
- package/dist/wallet/admin-reporting.js +11 -3
- package/dist/wallet/admin-reporting.js.map +1 -1
- package/dist/wallet/contract/index.d.ts +84 -0
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/contract/index.js +28 -2
- package/dist/wallet/contract/index.js.map +1 -1
- package/dist/wallet/router/index.d.ts +38 -0
- package/dist/wallet/router/index.d.ts.map +1 -1
- package/dist/wallet/router/index.js +14 -2
- package/dist/wallet/router/index.js.map +1 -1
- package/dist/wallet/service/wallet.service.d.ts +5 -3
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +25 -4
- package/dist/wallet/service/wallet.service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { findOneOrThrow, makeNotFoundError, pageToOffset, alreadyInUseError, } from '@openora/core/server';
|
|
2
|
-
import { and, asc, count, eq, inArray, isNull, notInArray } from 'drizzle-orm';
|
|
2
|
+
import { and, asc, count, desc, eq, inArray, isNull, notInArray } from 'drizzle-orm';
|
|
3
3
|
import { player } from '@openora/core/pam/schema/profile';
|
|
4
4
|
import { playerTag, tag } from '../schema/index.js';
|
|
5
5
|
import { mapDbError } from '@openora/core/common/errors';
|
|
@@ -57,9 +57,15 @@ export class TagService {
|
|
|
57
57
|
mapDbError(e);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
async listPlayerTags(playerId, page, limit) {
|
|
60
|
+
async listPlayerTags({ playerId, page, limit, sortBy, sortOrder, }) {
|
|
61
61
|
const where = and(eq(playerTag.playerId, playerId), isNull(playerTag.removedAt));
|
|
62
62
|
const db = this.drizzle.db;
|
|
63
|
+
const dir = (sortOrder ?? 'desc') === 'asc' ? asc : desc;
|
|
64
|
+
const TAG_SORT_COLS = {
|
|
65
|
+
createdAt: playerTag.createdAt,
|
|
66
|
+
assignActor: playerTag.assignActor,
|
|
67
|
+
};
|
|
68
|
+
const tagSortCol = TAG_SORT_COLS[sortBy ?? 'createdAt'];
|
|
63
69
|
const [rows, [{ n }]] = await Promise.all([
|
|
64
70
|
db
|
|
65
71
|
.select({
|
|
@@ -69,6 +75,7 @@ export class TagService {
|
|
|
69
75
|
.from(playerTag)
|
|
70
76
|
.innerJoin(tag, eq(playerTag.tagId, tag.id))
|
|
71
77
|
.where(where)
|
|
78
|
+
.orderBy(dir(tagSortCol), desc(playerTag.id))
|
|
72
79
|
.limit(limit)
|
|
73
80
|
.offset(pageToOffset(page, limit)),
|
|
74
81
|
db.select({ n: count() }).from(playerTag).where(where),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.service.js","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"tag.service.js","sourceRoot":"","sources":["../../../../src/pam/tag/service/tag.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-guard.d.ts","sourceRoot":"","sources":["../../../src/server/auth/admin-guard.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"admin-guard.d.ts","sourceRoot":"","sources":["../../../src/server/auth/admin-guard.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAS,KAAK,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE/D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAAU,CAA8B,CAAC;AAEzE;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU;IAGnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAJP,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EAEzB,kBAAkB,CAAC,EAAE,uBAAuB,YAAA,EAC5C,MAAM,CAAC,EAAE,QAAQ,YAAA;IAG9B,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,MAAM,CAAC,CAAC,SAAS,YAAY,EACjC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAgG5C,OAAO,CAAC,gBAAgB;CAmBzB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ORPCError } from '@orpc/server';
|
|
2
|
-
import { createToken } from '@openora/core/contracts';
|
|
2
|
+
import { createToken, AuthGuardReasonSchema, } from '@openora/core/contracts';
|
|
3
3
|
import { sql } from 'drizzle-orm';
|
|
4
4
|
import { roles } from './permissions.js';
|
|
5
5
|
export const ADMIN_GUARD = createToken('ADMIN_GUARD');
|
|
@@ -32,7 +32,10 @@ export class AdminGuard {
|
|
|
32
32
|
async assert(context, resource, action) {
|
|
33
33
|
const request = context.request;
|
|
34
34
|
if (!request || typeof request.headers !== 'object') {
|
|
35
|
-
throw new ORPCError('UNAUTHORIZED', {
|
|
35
|
+
throw new ORPCError('UNAUTHORIZED', {
|
|
36
|
+
message: 'Missing request context',
|
|
37
|
+
data: { reason: AuthGuardReasonSchema.enum.missing_request_context },
|
|
38
|
+
});
|
|
36
39
|
}
|
|
37
40
|
const headers = new Headers();
|
|
38
41
|
for (const [k, v] of Object.entries(request.headers)) {
|
|
@@ -43,7 +46,10 @@ export class AdminGuard {
|
|
|
43
46
|
}
|
|
44
47
|
const userId = await this.sessions.resolveUserId(headers);
|
|
45
48
|
if (!userId) {
|
|
46
|
-
throw new ORPCError('UNAUTHORIZED', {
|
|
49
|
+
throw new ORPCError('UNAUTHORIZED', {
|
|
50
|
+
message: 'Authentication required',
|
|
51
|
+
data: { reason: AuthGuardReasonSchema.enum.authentication_required },
|
|
52
|
+
});
|
|
47
53
|
}
|
|
48
54
|
const result = await this.drizzle.db.execute(sql `SELECT id, role FROM "user" WHERE id = ${userId} LIMIT 1`);
|
|
49
55
|
const userRecord = result.rows[0];
|
|
@@ -54,7 +60,10 @@ export class AdminGuard {
|
|
|
54
60
|
else {
|
|
55
61
|
this.emitUnauthorized(userId, undefined, 'admin', 'access', headers);
|
|
56
62
|
}
|
|
57
|
-
throw new ORPCError('FORBIDDEN', {
|
|
63
|
+
throw new ORPCError('FORBIDDEN', {
|
|
64
|
+
message: 'Admin access required',
|
|
65
|
+
data: { reason: AuthGuardReasonSchema.enum.admin_required },
|
|
66
|
+
});
|
|
58
67
|
}
|
|
59
68
|
const userRole = roles[userRecord.role];
|
|
60
69
|
if (!userRole) {
|
|
@@ -64,7 +73,10 @@ export class AdminGuard {
|
|
|
64
73
|
else {
|
|
65
74
|
this.emitUnauthorized(userId, userRecord.role, 'admin', 'access', headers);
|
|
66
75
|
}
|
|
67
|
-
throw new ORPCError('FORBIDDEN', {
|
|
76
|
+
throw new ORPCError('FORBIDDEN', {
|
|
77
|
+
message: 'Admin access required',
|
|
78
|
+
data: { reason: AuthGuardReasonSchema.enum.admin_required },
|
|
79
|
+
});
|
|
68
80
|
}
|
|
69
81
|
if (resource !== undefined && action !== undefined) {
|
|
70
82
|
const grants = this.permissionResolver
|
|
@@ -76,6 +88,11 @@ export class AdminGuard {
|
|
|
76
88
|
this.emitUnauthorized(userId, userRecord.role, resource, action, headers);
|
|
77
89
|
throw new ORPCError('FORBIDDEN', {
|
|
78
90
|
message: `Missing permission: ${String(resource)}:${String(action)}`,
|
|
91
|
+
data: {
|
|
92
|
+
reason: AuthGuardReasonSchema.enum.permission_denied,
|
|
93
|
+
resource: String(resource),
|
|
94
|
+
action: String(action),
|
|
95
|
+
},
|
|
79
96
|
});
|
|
80
97
|
}
|
|
81
98
|
}
|
|
@@ -86,6 +103,11 @@ export class AdminGuard {
|
|
|
86
103
|
this.emitUnauthorized(userId, userRecord.role, resource, action, headers);
|
|
87
104
|
throw new ORPCError('FORBIDDEN', {
|
|
88
105
|
message: `Missing permission: ${String(resource)}:${String(action)}`,
|
|
106
|
+
data: {
|
|
107
|
+
reason: AuthGuardReasonSchema.enum.permission_denied,
|
|
108
|
+
resource: String(resource),
|
|
109
|
+
action: String(action),
|
|
110
|
+
},
|
|
89
111
|
});
|
|
90
112
|
}
|
|
91
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-guard.js","sourceRoot":"","sources":["../../../src/server/auth/admin-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"admin-guard.js","sourceRoot":"","sources":["../../../src/server/auth/admin-guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-utils.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/router-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router-utils.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/router-utils.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAExE,KAAK,WAAW,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAG5C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AA0BF,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAElD"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { ORPCError } from '@orpc/server';
|
|
2
|
+
import { AuthGuardReasonSchema } from '@openora/core/contracts';
|
|
2
3
|
function resolveAuth(context) {
|
|
3
4
|
if (typeof context !== 'object' ||
|
|
4
5
|
context === null ||
|
|
5
6
|
!('request' in context) ||
|
|
6
7
|
typeof context.request !== 'object') {
|
|
7
|
-
throw new ORPCError('UNAUTHORIZED', {
|
|
8
|
+
throw new ORPCError('UNAUTHORIZED', {
|
|
9
|
+
message: 'Missing request context',
|
|
10
|
+
data: { reason: AuthGuardReasonSchema.enum.missing_request_context },
|
|
11
|
+
});
|
|
8
12
|
}
|
|
9
13
|
const auth = context.auth;
|
|
10
14
|
if (!auth?.userId) {
|
|
11
|
-
throw new ORPCError('UNAUTHORIZED', {
|
|
15
|
+
throw new ORPCError('UNAUTHORIZED', {
|
|
16
|
+
message: 'Authentication required',
|
|
17
|
+
data: { reason: AuthGuardReasonSchema.enum.authentication_required },
|
|
18
|
+
});
|
|
12
19
|
}
|
|
13
20
|
return auth;
|
|
14
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/server/kernel/router-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/server/kernel/router-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAqBhE,SAAS,WAAW,CAAC,OAAgB;IACnC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC;QACvB,OAAQ,OAAmC,CAAC,OAAO,KAAK,QAAQ,EAChE,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,cAAc,EAAE;YAClC,OAAO,EAAE,yBAAyB;YAClC,IAAI,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAI,OAAkC,CAAC,IAAI,CAAC;IACtD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CAAC,cAAc,EAAE;YAClC,OAAO,EAAE,yBAAyB;YAClC,IAAI,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,EAAE;SACrE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-plugins.test.d.ts","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/core-plugins.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { corePlugins } from '../core-plugins.js';
|
|
3
|
+
async function loadDefaults() {
|
|
4
|
+
const entries = corePlugins();
|
|
5
|
+
const loaded = await Promise.all(entries.map(async (entry) => {
|
|
6
|
+
const mod = (await import(entry.path));
|
|
7
|
+
return { entry, plugin: mod.default };
|
|
8
|
+
}));
|
|
9
|
+
return loaded;
|
|
10
|
+
}
|
|
11
|
+
describe('corePlugins', () => {
|
|
12
|
+
it('resolves every entry to an importable plugin whose id matches the entry id', async () => {
|
|
13
|
+
const loaded = await loadDefaults();
|
|
14
|
+
for (const { entry, plugin } of loaded) {
|
|
15
|
+
expect(plugin.id, `entry ${entry.id} resolves to a definePlugin`).toBe(entry.id);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
it('is a self-contained dependency graph - every dependsOn is present in the set', async () => {
|
|
19
|
+
const loaded = await loadDefaults();
|
|
20
|
+
const present = new Set(loaded.map(({ plugin }) => plugin.id));
|
|
21
|
+
const missing = loaded.flatMap(({ plugin }) => (plugin.dependsOn ?? [])
|
|
22
|
+
.filter((dep) => !present.has(dep))
|
|
23
|
+
.map((dep) => `${plugin.id} -> ${dep}`));
|
|
24
|
+
expect(missing).toEqual([]);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=core-plugins.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-plugins.test.js","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/core-plugins.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,UAAU,YAAY;IACzB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAA8B,CAAC;QACpE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,KAAK,CAAC,EAAE,6BAA6B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAC5C,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAC1C,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-plugins.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"core-plugins.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAK3C"}
|
|
@@ -11,8 +11,11 @@ const CORE_PLUGIN_MODULES = [
|
|
|
11
11
|
{ id: 'lobby', specifier: '@openora/core/casino/plugins/lobby' },
|
|
12
12
|
{ id: 'chat', specifier: '@openora/core/engagement/plugins/chat' },
|
|
13
13
|
{ id: 'profile', specifier: '@openora/core/pam/plugins/profile' },
|
|
14
|
+
{ id: 'tag', specifier: '@openora/core/pam/plugins/tag' },
|
|
14
15
|
{ id: 'admin-console', specifier: '@openora/core/admin-console/plugin' },
|
|
16
|
+
{ id: 'player-note', specifier: '@openora/core/pam/plugins/player-note' },
|
|
15
17
|
{ id: 'cms', specifier: '@openora/core/cms/plugins/cms' },
|
|
18
|
+
{ id: 'player-management', specifier: '@openora/core/pam/plugins/player-management' },
|
|
16
19
|
];
|
|
17
20
|
/**
|
|
18
21
|
* The full set of built-in platform plugins, as a ready-to-spread
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAqD;IAC5E,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE;IACxD,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE;IACpD,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACnE,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,gDAAgD,EAAE;IACpF,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,6CAA6C,EAAE;IAC9E,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,oCAAoC,EAAE;IAChE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,uCAAuC,EAAE;IAClE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,mCAAmC,EAAE;IACjE,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACxE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE;
|
|
1
|
+
{"version":3,"file":"core-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAqD;IAC5E,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE;IACxD,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE;IACpD,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACnE,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,gDAAgD,EAAE;IACpF,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,6CAA6C,EAAE;IAC9E,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,oCAAoC,EAAE;IAChE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,uCAAuC,EAAE;IAClE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,mCAAmC,EAAE;IACjE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE;IACzD,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACxE,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,uCAAuC,EAAE;IACzE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE;IACzD,EAAE,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,6CAA6C,EAAE;CACtF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,EAAE;QACF,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -39,7 +39,13 @@ describe('wallet router listPlayerTransactions authz', () => {
|
|
|
39
39
|
const wallet = fakeWallet();
|
|
40
40
|
const router = createWalletRouter(wallet, fakeAllowingGuard(), fakeAudit(), fakePayment(), fakeWebhookVerifier());
|
|
41
41
|
await call(router.listPlayerTransactions, { userId: USER_ID, page: 1, limit: 20 }, { context: CTX });
|
|
42
|
-
expect(wallet.getTransactions).toHaveBeenCalledWith(
|
|
42
|
+
expect(wallet.getTransactions).toHaveBeenCalledWith({
|
|
43
|
+
userId: USER_ID,
|
|
44
|
+
page: 1,
|
|
45
|
+
limit: 20,
|
|
46
|
+
sortBy: 'createdAt',
|
|
47
|
+
sortOrder: 'desc',
|
|
48
|
+
});
|
|
43
49
|
});
|
|
44
50
|
});
|
|
45
51
|
//# sourceMappingURL=wallet.router.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.router.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/wallet.router.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wallet.router.test.js","sourceRoot":"","sources":["../../../src/wallet/__tests__/wallet.router.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare class DrizzleAdminWalletReporting implements AdminWalletReporting
|
|
|
7
7
|
deposits: string;
|
|
8
8
|
withdrawals: string;
|
|
9
9
|
}>;
|
|
10
|
-
listTransactions({ page, limit, userIds, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, }: AdminTxListOptions): Promise<{
|
|
10
|
+
listTransactions({ page, limit, userIds, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, sortBy, sortOrder, }: AdminTxListOptions): Promise<{
|
|
11
11
|
rows: {
|
|
12
12
|
id: string;
|
|
13
13
|
userId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-reporting.d.ts","sourceRoot":"","sources":["../../src/wallet/admin-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AAKpE,qBAAa,2BAA4B,YAAW,oBAAoB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,MAAM;;;;IAqBN,gBAAgB,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,GACV,EAAE,kBAAkB;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"admin-reporting.d.ts","sourceRoot":"","sources":["../../src/wallet/admin-reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAgB,MAAM,sBAAsB,CAAC;AAKpE,qBAAa,2BAA4B,YAAW,oBAAoB;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,cAAc;IAE9C,MAAM;;;;IAqBN,gBAAgB,CAAC,EACrB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,kBAAkB;;;;;;;;;;;;;IAyDf,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;CA0BhC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { pageToOffset } from '@openora/core/server';
|
|
2
|
-
import { and, count, desc, eq, gte, inArray, lte, sum } from 'drizzle-orm';
|
|
2
|
+
import { and, asc, count, desc, eq, gte, inArray, lte, sum } from 'drizzle-orm';
|
|
3
3
|
import { wallet, walletTransaction } from './schema/index.js';
|
|
4
4
|
// See ADR-0017/0025.
|
|
5
5
|
export class DrizzleAdminWalletReporting {
|
|
@@ -23,7 +23,7 @@ export class DrizzleAdminWalletReporting {
|
|
|
23
23
|
]);
|
|
24
24
|
return { deposits, withdrawals };
|
|
25
25
|
}
|
|
26
|
-
async listTransactions({ page, limit, userIds, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, }) {
|
|
26
|
+
async listTransactions({ page, limit, userIds, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, sortBy, sortOrder, }) {
|
|
27
27
|
const db = this.drizzle.db;
|
|
28
28
|
const conditions = [
|
|
29
29
|
userIds && userIds.length > 0 ? inArray(wallet.userId, userIds) : undefined,
|
|
@@ -43,7 +43,15 @@ export class DrizzleAdminWalletReporting {
|
|
|
43
43
|
.from(walletTransaction)
|
|
44
44
|
.innerJoin(wallet, eq(walletTransaction.walletId, wallet.id))
|
|
45
45
|
.where(where)
|
|
46
|
-
.orderBy(desc
|
|
46
|
+
.orderBy(((sortOrder ?? 'desc') === 'asc' ? asc : desc)({
|
|
47
|
+
createdAt: walletTransaction.createdAt,
|
|
48
|
+
amount: walletTransaction.amount,
|
|
49
|
+
type: walletTransaction.type,
|
|
50
|
+
status: walletTransaction.status,
|
|
51
|
+
currency: walletTransaction.currency,
|
|
52
|
+
rail: walletTransaction.rail,
|
|
53
|
+
reviewedAt: walletTransaction.reviewedAt,
|
|
54
|
+
}[sortBy ?? 'createdAt']), desc(walletTransaction.id))
|
|
47
55
|
.limit(limit)
|
|
48
56
|
.offset(pageToOffset(page, limit)),
|
|
49
57
|
db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-reporting.js","sourceRoot":"","sources":["../../src/wallet/admin-reporting.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"admin-reporting.js","sourceRoot":"","sources":["../../src/wallet/admin-reporting.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,10 +55,44 @@ export declare const TransactionResultSchema: z.ZodObject<{
|
|
|
55
55
|
}>;
|
|
56
56
|
}, z.core.$strip>;
|
|
57
57
|
export type TransactionResult = z.infer<typeof TransactionResultSchema>;
|
|
58
|
+
export declare const WALLET_TX_SORT_BY_VALUES: readonly ["createdAt", "amount", "type", "status", "currency", "rail", "reviewedAt"];
|
|
59
|
+
export declare const WalletTransactionSortBySchema: z.ZodDefault<z.ZodEnum<{
|
|
60
|
+
status: "status";
|
|
61
|
+
type: "type";
|
|
62
|
+
createdAt: "createdAt";
|
|
63
|
+
currency: "currency";
|
|
64
|
+
amount: "amount";
|
|
65
|
+
rail: "rail";
|
|
66
|
+
reviewedAt: "reviewedAt";
|
|
67
|
+
}>>;
|
|
68
|
+
export type WalletTransactionSortBy = z.infer<typeof WalletTransactionSortBySchema>;
|
|
69
|
+
export declare const WITHDRAWAL_SORT_BY_VALUES: readonly ["createdAt", "amount", "status", "currency", "rail", "reviewedAt"];
|
|
70
|
+
export declare const WithdrawalSortBySchema: z.ZodDefault<z.ZodEnum<{
|
|
71
|
+
status: "status";
|
|
72
|
+
createdAt: "createdAt";
|
|
73
|
+
currency: "currency";
|
|
74
|
+
amount: "amount";
|
|
75
|
+
rail: "rail";
|
|
76
|
+
reviewedAt: "reviewedAt";
|
|
77
|
+
}>>;
|
|
78
|
+
export type WithdrawalSortBy = z.infer<typeof WithdrawalSortBySchema>;
|
|
58
79
|
export declare const ListPlayerTransactionsArgs: z.ZodObject<{
|
|
59
80
|
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
60
81
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
61
82
|
userId: z.ZodUUID;
|
|
83
|
+
sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
84
|
+
status: "status";
|
|
85
|
+
type: "type";
|
|
86
|
+
createdAt: "createdAt";
|
|
87
|
+
currency: "currency";
|
|
88
|
+
amount: "amount";
|
|
89
|
+
rail: "rail";
|
|
90
|
+
reviewedAt: "reviewedAt";
|
|
91
|
+
}>>>;
|
|
92
|
+
sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
93
|
+
asc: "asc";
|
|
94
|
+
desc: "desc";
|
|
95
|
+
}>>>;
|
|
62
96
|
}, z.core.$strip>;
|
|
63
97
|
export declare const WithdrawalQueueItemSchema: z.ZodObject<{
|
|
64
98
|
transactionId: z.ZodUUID;
|
|
@@ -122,6 +156,18 @@ export declare const WithdrawalQueueFilterSchema: z.ZodObject<{
|
|
|
122
156
|
}>>;
|
|
123
157
|
dateFrom: z.ZodOptional<z.ZodISODateTime>;
|
|
124
158
|
dateTo: z.ZodOptional<z.ZodISODateTime>;
|
|
159
|
+
sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
160
|
+
status: "status";
|
|
161
|
+
createdAt: "createdAt";
|
|
162
|
+
currency: "currency";
|
|
163
|
+
amount: "amount";
|
|
164
|
+
rail: "rail";
|
|
165
|
+
reviewedAt: "reviewedAt";
|
|
166
|
+
}>>>;
|
|
167
|
+
sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
168
|
+
asc: "asc";
|
|
169
|
+
desc: "desc";
|
|
170
|
+
}>>>;
|
|
125
171
|
}, z.core.$strip>;
|
|
126
172
|
export type WithdrawalQueueFilter = z.infer<typeof WithdrawalQueueFilterSchema>;
|
|
127
173
|
export declare const AutoWithdrawalRuleSchema: z.ZodObject<{
|
|
@@ -203,6 +249,19 @@ export declare const walletContract: {
|
|
|
203
249
|
listTransactions: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
|
|
204
250
|
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
205
251
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
252
|
+
sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
253
|
+
status: "status";
|
|
254
|
+
type: "type";
|
|
255
|
+
createdAt: "createdAt";
|
|
256
|
+
currency: "currency";
|
|
257
|
+
amount: "amount";
|
|
258
|
+
rail: "rail";
|
|
259
|
+
reviewedAt: "reviewedAt";
|
|
260
|
+
}>>>;
|
|
261
|
+
sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
262
|
+
asc: "asc";
|
|
263
|
+
desc: "desc";
|
|
264
|
+
}>>>;
|
|
206
265
|
}, z.core.$strip>, z.ZodObject<{
|
|
207
266
|
items: z.ZodArray<z.ZodObject<{
|
|
208
267
|
id: z.ZodUUID;
|
|
@@ -236,6 +295,19 @@ export declare const walletContract: {
|
|
|
236
295
|
page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
237
296
|
limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
238
297
|
userId: z.ZodUUID;
|
|
298
|
+
sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
299
|
+
status: "status";
|
|
300
|
+
type: "type";
|
|
301
|
+
createdAt: "createdAt";
|
|
302
|
+
currency: "currency";
|
|
303
|
+
amount: "amount";
|
|
304
|
+
rail: "rail";
|
|
305
|
+
reviewedAt: "reviewedAt";
|
|
306
|
+
}>>>;
|
|
307
|
+
sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
308
|
+
asc: "asc";
|
|
309
|
+
desc: "desc";
|
|
310
|
+
}>>>;
|
|
239
311
|
}, z.core.$strip>, z.ZodObject<{
|
|
240
312
|
items: z.ZodArray<z.ZodObject<{
|
|
241
313
|
id: z.ZodUUID;
|
|
@@ -295,6 +367,18 @@ export declare const walletContract: {
|
|
|
295
367
|
}>>;
|
|
296
368
|
dateFrom: z.ZodOptional<z.ZodISODateTime>;
|
|
297
369
|
dateTo: z.ZodOptional<z.ZodISODateTime>;
|
|
370
|
+
sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
371
|
+
status: "status";
|
|
372
|
+
createdAt: "createdAt";
|
|
373
|
+
currency: "currency";
|
|
374
|
+
amount: "amount";
|
|
375
|
+
rail: "rail";
|
|
376
|
+
reviewedAt: "reviewedAt";
|
|
377
|
+
}>>>;
|
|
378
|
+
sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
379
|
+
asc: "asc";
|
|
380
|
+
desc: "desc";
|
|
381
|
+
}>>>;
|
|
298
382
|
}, z.core.$strip>, z.ZodObject<{
|
|
299
383
|
items: z.ZodArray<z.ZodObject<{
|
|
300
384
|
transactionId: z.ZodUUID;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAKL,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,CAAC;AASxF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAGlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/wallet/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAKL,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,CAAC;AASxF,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAGlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB,sFAQ3B,CAAC;AACX,eAAO,MAAM,6BAA6B;;;;;;;;GAAwD,CAAC;AACnG,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,yBAAyB,8EAO5B,CAAC;AACX,eAAO,MAAM,sBAAsB;;;;;;;GAAyD,CAAC;AAC7F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;iBAIrC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAapC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,wBAAwB;;;;;;;;iBAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,gCAAgC;;;;iBAI3C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;iBAAmC,CAAC;AAE5E,eAAO,MAAM,4BAA4B;;iBAAyC,CAAC;AAEnF,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,yBAAyB,wCAAoC,CAAC;AAC3E,eAAO,MAAM,0BAA0B;;iBAAoC,CAAC;AAE5E,eAAO,MAAM,yBAAyB;;iBAAmD,CAAC;AAC1F,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyE1B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { oc } from '@orpc/contract';
|
|
2
2
|
import * as z from 'zod';
|
|
3
3
|
import { KycStatusSchema, MoneyAmountSchema, TimestampSchema, UuidSchema, WalletRailSchema, WalletTransactionStatusSchema, WalletTransactionTypeSchema, } from '@openora/core/contracts';
|
|
4
|
-
import { PageQuerySchema, paginated } from '@openora/core/contracts/kit';
|
|
4
|
+
import { PageQuerySchema, SortOrderSchema, paginated } from '@openora/core/contracts/kit';
|
|
5
5
|
export { WalletRailSchema, WalletTransactionStatusSchema, WalletTransactionTypeSchema };
|
|
6
6
|
// Deposit/withdraw amounts must be strictly positive; balances/thresholds may be zero.
|
|
7
7
|
const PositiveMoneyAmountSchema = MoneyAmountSchema.refine((v) => Number(v) > 0, {
|
|
@@ -37,8 +37,29 @@ export const TransactionResultSchema = z.object({
|
|
|
37
37
|
transactionId: UuidSchema,
|
|
38
38
|
status: WalletTransactionStatusSchema,
|
|
39
39
|
});
|
|
40
|
+
export const WALLET_TX_SORT_BY_VALUES = [
|
|
41
|
+
'createdAt',
|
|
42
|
+
'amount',
|
|
43
|
+
'type',
|
|
44
|
+
'status',
|
|
45
|
+
'currency',
|
|
46
|
+
'rail',
|
|
47
|
+
'reviewedAt',
|
|
48
|
+
];
|
|
49
|
+
export const WalletTransactionSortBySchema = z.enum(WALLET_TX_SORT_BY_VALUES).default('createdAt');
|
|
50
|
+
export const WITHDRAWAL_SORT_BY_VALUES = [
|
|
51
|
+
'createdAt',
|
|
52
|
+
'amount',
|
|
53
|
+
'status',
|
|
54
|
+
'currency',
|
|
55
|
+
'rail',
|
|
56
|
+
'reviewedAt',
|
|
57
|
+
];
|
|
58
|
+
export const WithdrawalSortBySchema = z.enum(WITHDRAWAL_SORT_BY_VALUES).default('createdAt');
|
|
40
59
|
export const ListPlayerTransactionsArgs = PageQuerySchema.extend({
|
|
41
60
|
userId: UuidSchema,
|
|
61
|
+
sortBy: WalletTransactionSortBySchema.optional(),
|
|
62
|
+
sortOrder: SortOrderSchema.default('desc').optional(),
|
|
42
63
|
});
|
|
43
64
|
export const WithdrawalQueueItemSchema = z.object({
|
|
44
65
|
transactionId: UuidSchema,
|
|
@@ -63,6 +84,8 @@ export const WithdrawalQueueFilterSchema = PageQuerySchema.extend({
|
|
|
63
84
|
kycStatus: KycStatusSchema.optional(),
|
|
64
85
|
dateFrom: TimestampSchema.optional(),
|
|
65
86
|
dateTo: TimestampSchema.optional(),
|
|
87
|
+
sortBy: WithdrawalSortBySchema.optional(),
|
|
88
|
+
sortOrder: SortOrderSchema.default('desc').optional(),
|
|
66
89
|
});
|
|
67
90
|
export const AutoWithdrawalRuleSchema = z.object({
|
|
68
91
|
id: UuidSchema,
|
|
@@ -103,7 +126,10 @@ export const walletContract = {
|
|
|
103
126
|
.output(TransactionResultSchema),
|
|
104
127
|
listTransactions: oc
|
|
105
128
|
.route({ method: 'GET', path: '/wallet/transactions' })
|
|
106
|
-
.input(PageQuerySchema
|
|
129
|
+
.input(PageQuerySchema.extend({
|
|
130
|
+
sortBy: WalletTransactionSortBySchema.optional(),
|
|
131
|
+
sortOrder: SortOrderSchema.default('desc').optional(),
|
|
132
|
+
}))
|
|
107
133
|
.output(paginated(WalletTransactionSchema)),
|
|
108
134
|
listPlayerTransactions: oc
|
|
109
135
|
.route({ method: 'GET', path: '/wallet/transactions/{userId}' })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wallet/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,CAAC;AAExF,uFAAuF;AACvF,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;IAC/E,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,wBAAwB;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,2BAA2B;IACjC,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,6BAA6B;IACrC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,cAAc,EAAE,UAAU,CAAC,QAAQ,EAAE;IACrC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,aAAa,EAAE,UAAU;IACzB,MAAM,EAAE,6BAA6B;CACtC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,UAAU;IACV,MAAM;IACN,YAAY;CACJ,CAAC;AACX,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAGnG,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,YAAY;CACJ,CAAC;AACX,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAG7F,MAAM,CAAC,MAAM,0BAA0B,GAAG,eAAe,CAAC,MAAM,CAAC;IAC/D,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,aAAa,EAAE,UAAU;IACzB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,wBAAwB;IAClC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,6BAA6B;IACrC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,eAAe;IAC5B,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC,MAAM,CAAC;IAChE,MAAM,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IAChD,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACjC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,eAAe,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACzC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,UAAU;IACd,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,yBAAyB;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,YAAY,EAAE,UAAU;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,wBAAwB;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAE5F,OAAO,EAAE,EAAE;SACR,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;SAClD,KAAK,CAAC,kBAAkB,CAAC;SACzB,MAAM,CAAC,uBAAuB,CAAC;IAElC,QAAQ,EAAE,EAAE;SACT,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;SACnD,KAAK,CAAC,mBAAmB,CAAC;SAC1B,MAAM,CAAC,uBAAuB,CAAC;IAElC,gBAAgB,EAAE,EAAE;SACjB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;SACtD,KAAK,CACJ,eAAe,CAAC,MAAM,CAAC;QACrB,MAAM,EAAE,6BAA6B,CAAC,QAAQ,EAAE;QAChD,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;KACtD,CAAC,CACH;SACA,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAE7C,sBAAsB,EAAE,EAAE;SACvB,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;SAC/D,KAAK,CAAC,0BAA0B,CAAC;SACjC,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAE7C,WAAW,EAAE;QACX,IAAI,EAAE,EAAE;aACL,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;aACrD,KAAK,CAAC,2BAA2B,CAAC;aAClC,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAE/C,OAAO,EAAE,EAAE;aACR,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,4CAA4C,EAAE,CAAC;aAC7E,KAAK,CAAC,4BAA4B,CAAC;aACnC,MAAM,CAAC,uBAAuB,CAAC;QAElC,MAAM,EAAE,EAAE;aACP,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,EAAE,CAAC;aAC5E,KAAK,CAAC,2BAA2B,CAAC;aAClC,MAAM,CAAC,uBAAuB,CAAC;KACnC;IAED,mBAAmB,EAAE;QACnB,GAAG,EAAE,EAAE;aACJ,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;aACxE,KAAK,CAAC,gCAAgC,CAAC;aACvC,MAAM,CAAC,wBAAwB,CAAC;QAEnC,GAAG,EAAE,EAAE;aACJ,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;aACxE,KAAK,CAAC,2BAA2B,CAAC;aAClC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAE9C,MAAM,EAAE,EAAE;aACP,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,wCAAwC,EAAE,CAAC;aAC3E,KAAK,CAAC,2BAA2B,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;KACvB;IAED,QAAQ,EAAE;QACR,UAAU,EAAE,EAAE;aACX,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;aAC3D,KAAK,CAAC,yBAAyB,CAAC;aAChC,MAAM,CAAC,oBAAoB,CAAC;KAChC;IAED,OAAO,EAAE,EAAE;SACR,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;SAClD,KAAK,CAAC,yBAAyB,CAAC;SAChC,MAAM,CAAC,0BAA0B,CAAC;CACtC,CAAC"}
|