@dalmore/api-contracts 1.0.3 → 1.0.5
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/README.md +34 -60
- package/index.d.mts +17 -0
- package/index.d.ts +17 -0
- package/index.mjs +1001 -18638
- package/package.json +7 -54
- package/clients/index.mjs +0 -10970
- package/compliance/index.mjs +0 -20016
- package/compliance-apikey/index.mjs +0 -9795
- package/helpers/index.mjs +0 -146
- package/investors/index.mjs +0 -12844
- package/issuers/index.mjs +0 -16168
- package/secondaries/index.mjs +0 -10282
- package/src/common/helpers/index.ts +0 -205
- package/src/common/types/account-contact.types.ts +0 -98
- package/src/common/types/account-detail.types.ts +0 -27
- package/src/common/types/account-integration.types.ts +0 -143
- package/src/common/types/account-manager.types.ts +0 -124
- package/src/common/types/account.types.ts +0 -296
- package/src/common/types/activity.types.ts +0 -274
- package/src/common/types/address.types.ts +0 -41
- package/src/common/types/aic.types.ts +0 -246
- package/src/common/types/aml.types.ts +0 -18
- package/src/common/types/api-key-logs.types.ts +0 -66
- package/src/common/types/api-keys.types.ts +0 -69
- package/src/common/types/asset.types.ts +0 -338
- package/src/common/types/auth.types.ts +0 -370
- package/src/common/types/batch-jobs.types.ts +0 -150
- package/src/common/types/bonus-tier.types.ts +0 -147
- package/src/common/types/cart.types.ts +0 -18
- package/src/common/types/checklist-items.types.ts +0 -70
- package/src/common/types/checklist.types.ts +0 -97
- package/src/common/types/common.types.ts +0 -1520
- package/src/common/types/comply-advantage-api.types.ts +0 -316
- package/src/common/types/comply-advantage.types.ts +0 -25
- package/src/common/types/contact-us.types.ts +0 -107
- package/src/common/types/contract-helpers.ts +0 -205
- package/src/common/types/countries.types.ts +0 -375
- package/src/common/types/covered-person.types.ts +0 -274
- package/src/common/types/dashboard.types.ts +0 -799
- package/src/common/types/data-record.types.ts +0 -325
- package/src/common/types/data-room.types.ts +0 -242
- package/src/common/types/default-theme-config.types.ts +0 -87
- package/src/common/types/disbursement-adjustment.types.ts +0 -32
- package/src/common/types/disbursement-approval-user.types.ts +0 -100
- package/src/common/types/disbursement-review.types.ts +0 -110
- package/src/common/types/disbursement-transaction.types.ts +0 -72
- package/src/common/types/disbursements.types.ts +0 -310
- package/src/common/types/domain-filter.types.ts +0 -55
- package/src/common/types/email-theme.types.ts +0 -442
- package/src/common/types/entity.types.ts +0 -15
- package/src/common/types/error-responses.types.ts +0 -135
- package/src/common/types/escrow-account.types.ts +0 -104
- package/src/common/types/exchange-api-key.types.ts +0 -121
- package/src/common/types/exchange-import.types.ts +0 -36
- package/src/common/types/exchange-provider.types.ts +0 -329
- package/src/common/types/file.types.ts +0 -461
- package/src/common/types/health.types.ts +0 -29
- package/src/common/types/index.ts +0 -48
- package/src/common/types/individuals.types.ts +0 -554
- package/src/common/types/investor-account.types.ts +0 -1239
- package/src/common/types/investorAccountIdSchema.type.ts +0 -0
- package/src/common/types/investors-offering.types.ts +0 -65
- package/src/common/types/invite.types.ts +0 -133
- package/src/common/types/issuer-bank-account.types.ts +0 -107
- package/src/common/types/issuer-offering.types.ts +0 -306
- package/src/common/types/issuer-payment-method.types.ts +0 -341
- package/src/common/types/issuer.types.ts +0 -312
- package/src/common/types/job-item.types.ts +0 -119
- package/src/common/types/jobs.types.ts +0 -171
- package/src/common/types/kyb.types.ts +0 -53
- package/src/common/types/kyc.types.ts +0 -188
- package/src/common/types/legal-entity.types.ts +0 -185
- package/src/common/types/login-history.types.ts +0 -46
- package/src/common/types/mail-template.types.ts +0 -436
- package/src/common/types/north-cap-integration.types.ts +0 -190
- package/src/common/types/note.types.ts +0 -109
- package/src/common/types/notification.types.ts +0 -58
- package/src/common/types/notion-api.types.ts +0 -374
- package/src/common/types/notion-database.types.ts +0 -125
- package/src/common/types/notion-page.types.ts +0 -267
- package/src/common/types/offering-reports.types.ts +0 -153
- package/src/common/types/offering-submission.types.ts +0 -314
- package/src/common/types/offering.types.ts +0 -590
- package/src/common/types/page-revision.types.ts +0 -86
- package/src/common/types/page.types.ts +0 -436
- package/src/common/types/password.type.ts +0 -15
- package/src/common/types/payment-methods.types.ts +0 -298
- package/src/common/types/phone.type.ts +0 -27
- package/src/common/types/portfolio.types.ts +0 -50
- package/src/common/types/privacy-policy-and-tos.types.ts +0 -231
- package/src/common/types/queue.types.ts +0 -111
- package/src/common/types/registered-reps.types.ts +0 -25
- package/src/common/types/rejection-reasons.types.ts +0 -56
- package/src/common/types/review.types.ts +0 -133
- package/src/common/types/role.types.ts +0 -26
- package/src/common/types/secondary-customer.types.ts +0 -66
- package/src/common/types/secondary-issuer.types.ts +0 -50
- package/src/common/types/secondary-order.types.ts +0 -58
- package/src/common/types/secondary-security.types.ts +0 -60
- package/src/common/types/secondary-trade.entity.ts +0 -16
- package/src/common/types/secondary-trade.types.ts +0 -95
- package/src/common/types/secure-request.types.ts +0 -68
- package/src/common/types/signer.types.ts +0 -651
- package/src/common/types/site-link.types.ts +0 -166
- package/src/common/types/site-settings.types.ts +0 -726
- package/src/common/types/site.types.ts +0 -270
- package/src/common/types/sms.types.ts +0 -30
- package/src/common/types/state-machine.types.ts +0 -177
- package/src/common/types/states.types.ts +0 -163
- package/src/common/types/subdoc-preview.types.ts +0 -35
- package/src/common/types/task.types.ts +0 -258
- package/src/common/types/trade-adjustment.type.ts +0 -33
- package/src/common/types/trade-line-item.type.ts +0 -132
- package/src/common/types/trade.types.ts +0 -931
- package/src/common/types/transaction.types.ts +0 -198
- package/src/common/types/trusted-contact.types.ts +0 -122
- package/src/common/types/typography.types.ts +0 -75
- package/src/common/types/user-manual.types.ts +0 -290
- package/src/common/types/user-setting.types.ts +0 -133
- package/src/common/types/user.types.ts +0 -320
- package/src/common/types/webhook.types.ts +0 -588
- package/src/common/types/zip.type.ts +0 -36
- package/src/contracts/clients/accounts/index.ts +0 -61
- package/src/contracts/clients/aic/index.ts +0 -59
- package/src/contracts/clients/api-key-logs/index.ts +0 -53
- package/src/contracts/clients/api-keys/index.ts +0 -73
- package/src/contracts/clients/assets/index.ts +0 -102
- package/src/contracts/clients/auth/index.ts +0 -50
- package/src/contracts/clients/files/index.ts +0 -166
- package/src/contracts/clients/files-public/index.ts +0 -166
- package/src/contracts/clients/index.ts +0 -44
- package/src/contracts/clients/individuals/index.ts +0 -93
- package/src/contracts/clients/investor-accounts/index.ts +0 -93
- package/src/contracts/clients/issuers/index.ts +0 -94
- package/src/contracts/clients/legal-entities/index.ts +0 -93
- package/src/contracts/clients/offerings/index.ts +0 -117
- package/src/contracts/clients/secure-requests/index.ts +0 -34
- package/src/contracts/clients/sites/index.ts +0 -56
- package/src/contracts/clients/trades/index.ts +0 -122
- package/src/contracts/compliance/account-contacts/index.ts +0 -82
- package/src/contracts/compliance/account-managers/index.ts +0 -142
- package/src/contracts/compliance/accounts/index.ts +0 -187
- package/src/contracts/compliance/activities/index.ts +0 -55
- package/src/contracts/compliance/aic/index.ts +0 -60
- package/src/contracts/compliance/api-keys/index.ts +0 -91
- package/src/contracts/compliance/assets/index.ts +0 -122
- package/src/contracts/compliance/auth/index.ts +0 -134
- package/src/contracts/compliance/batch-jobs/index.ts +0 -62
- package/src/contracts/compliance/bonus-tiers/index.ts +0 -55
- package/src/contracts/compliance/checklist/index.ts +0 -87
- package/src/contracts/compliance/checklist-items/index.ts +0 -86
- package/src/contracts/compliance/covered-persons/index.ts +0 -97
- package/src/contracts/compliance/dashboard/index.ts +0 -111
- package/src/contracts/compliance/data-records/index.ts +0 -116
- package/src/contracts/compliance/data-rooms/index.ts +0 -113
- package/src/contracts/compliance/default-theme-configs/index.ts +0 -95
- package/src/contracts/compliance/disbursement/index.ts +0 -165
- package/src/contracts/compliance/disbursement-approval-users/index.ts +0 -84
- package/src/contracts/compliance/disbursement-transactions/index.ts +0 -37
- package/src/contracts/compliance/domain-filters/index.ts +0 -117
- package/src/contracts/compliance/email-themes/index.ts +0 -284
- package/src/contracts/compliance/escrow-accounts/index.ts +0 -85
- package/src/contracts/compliance/exchange-api-keys/index.ts +0 -129
- package/src/contracts/compliance/exchange-imports/index.ts +0 -137
- package/src/contracts/compliance/files/index.ts +0 -267
- package/src/contracts/compliance/files-public/index.ts +0 -188
- package/src/contracts/compliance/health/index.ts +0 -26
- package/src/contracts/compliance/index.ts +0 -147
- package/src/contracts/compliance/individuals/index.ts +0 -57
- package/src/contracts/compliance/investor-accounts/index.ts +0 -141
- package/src/contracts/compliance/invites/index.ts +0 -137
- package/src/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
- package/src/contracts/compliance/issuer-payment-methods/index.ts +0 -81
- package/src/contracts/compliance/issuers/index.ts +0 -97
- package/src/contracts/compliance/job-items/index.ts +0 -58
- package/src/contracts/compliance/jobs/index.ts +0 -59
- package/src/contracts/compliance/kyb/index.ts +0 -54
- package/src/contracts/compliance/kyc/index.ts +0 -77
- package/src/contracts/compliance/legal-entities/index.ts +0 -57
- package/src/contracts/compliance/login-histories/index.ts +0 -37
- package/src/contracts/compliance/notes/index.ts +0 -69
- package/src/contracts/compliance/notion-databases/index.ts +0 -107
- package/src/contracts/compliance/notion-pages/index.ts +0 -105
- package/src/contracts/compliance/offering-reports/index.ts +0 -149
- package/src/contracts/compliance/offerings/index.ts +0 -233
- package/src/contracts/compliance/pages/index.ts +0 -178
- package/src/contracts/compliance/payment-methods/index.ts +0 -57
- package/src/contracts/compliance/rejection-reasons/index.ts +0 -32
- package/src/contracts/compliance/review/index.ts +0 -169
- package/src/contracts/compliance/roles/index.ts +0 -34
- package/src/contracts/compliance/secondary-customers/index.ts +0 -77
- package/src/contracts/compliance/secondary-orders/index.ts +0 -60
- package/src/contracts/compliance/secondary-trades/index.ts +0 -100
- package/src/contracts/compliance/secure-requests/index.ts +0 -54
- package/src/contracts/compliance/signer/index.ts +0 -369
- package/src/contracts/compliance/site-links/index.ts +0 -128
- package/src/contracts/compliance/site-settings/index.ts +0 -669
- package/src/contracts/compliance/sites/index.ts +0 -56
- package/src/contracts/compliance/state-machine/index.ts +0 -94
- package/src/contracts/compliance/tasks/index.ts +0 -91
- package/src/contracts/compliance/third-parties/index.ts +0 -52
- package/src/contracts/compliance/trade-line-items/index.ts +0 -59
- package/src/contracts/compliance/trades/index.ts +0 -230
- package/src/contracts/compliance/transactions/index.ts +0 -161
- package/src/contracts/compliance/user-manuals/index.ts +0 -271
- package/src/contracts/compliance/user-settings/index.ts +0 -189
- package/src/contracts/compliance/users/index.ts +0 -200
- package/src/contracts/compliance/webhooks/index.ts +0 -41
- package/src/contracts/compliance-apikey/accounts/index.ts +0 -58
- package/src/contracts/compliance-apikey/index.ts +0 -14
- package/src/contracts/index.ts +0 -6
- package/src/contracts/investors/account-contacts/index.ts +0 -58
- package/src/contracts/investors/aic/index.ts +0 -59
- package/src/contracts/investors/assets/index.ts +0 -61
- package/src/contracts/investors/auth/index.ts +0 -116
- package/src/contracts/investors/bonus-tiers/index.ts +0 -37
- package/src/contracts/investors/cart/index.ts +0 -75
- package/src/contracts/investors/contact-us/index.ts +0 -48
- package/src/contracts/investors/data-records/index.ts +0 -113
- package/src/contracts/investors/data-rooms/index.ts +0 -96
- package/src/contracts/investors/files/index.ts +0 -167
- package/src/contracts/investors/files-public/index.ts +0 -185
- package/src/contracts/investors/index.ts +0 -72
- package/src/contracts/investors/individuals/index.ts +0 -99
- package/src/contracts/investors/investor-accounts/index.ts +0 -110
- package/src/contracts/investors/issuer-payment-methods/index.ts +0 -36
- package/src/contracts/investors/issuers/index.ts +0 -30
- package/src/contracts/investors/legal-entities/index.ts +0 -93
- package/src/contracts/investors/notes/index.ts +0 -69
- package/src/contracts/investors/offerings/index.ts +0 -93
- package/src/contracts/investors/pages/index.ts +0 -88
- package/src/contracts/investors/payment-methods/index.ts +0 -149
- package/src/contracts/investors/portfolios/index.ts +0 -53
- package/src/contracts/investors/sites/index.ts +0 -96
- package/src/contracts/investors/tasks/index.ts +0 -111
- package/src/contracts/investors/trade-line-items/index.ts +0 -75
- package/src/contracts/investors/trades/index.ts +0 -114
- package/src/contracts/investors/transactions/index.ts +0 -37
- package/src/contracts/investors/trusted-contacts/index.ts +0 -93
- package/src/contracts/investors/user-manuals/index.ts +0 -62
- package/src/contracts/investors/user-settings/index.ts +0 -170
- package/src/contracts/investors/users/index.ts +0 -45
- package/src/contracts/investors/webhooks/index.ts +0 -30
- package/src/contracts/issuers/account-contacts/index.ts +0 -76
- package/src/contracts/issuers/account-integrations/index.ts +0 -97
- package/src/contracts/issuers/accounts/index.ts +0 -97
- package/src/contracts/issuers/activities/index.ts +0 -54
- package/src/contracts/issuers/aic/index.ts +0 -39
- package/src/contracts/issuers/api-key-logs/index.ts +0 -53
- package/src/contracts/issuers/api-keys/index.ts +0 -93
- package/src/contracts/issuers/assets/index.ts +0 -122
- package/src/contracts/issuers/auth/index.ts +0 -152
- package/src/contracts/issuers/bonus-tiers/index.ts +0 -55
- package/src/contracts/issuers/contact-us/index.ts +0 -48
- package/src/contracts/issuers/covered-persons/index.ts +0 -136
- package/src/contracts/issuers/dashboard/index.ts +0 -72
- package/src/contracts/issuers/data-records/index.ts +0 -257
- package/src/contracts/issuers/data-rooms/index.ts +0 -134
- package/src/contracts/issuers/disbursement-approval-users/index.ts +0 -82
- package/src/contracts/issuers/disbursement-transactions/index.ts +0 -53
- package/src/contracts/issuers/disbursements/index.ts +0 -153
- package/src/contracts/issuers/email-themes/index.ts +0 -242
- package/src/contracts/issuers/escrow-accounts/index.ts +0 -81
- package/src/contracts/issuers/exchange-api-keys/index.ts +0 -144
- package/src/contracts/issuers/files/index.ts +0 -166
- package/src/contracts/issuers/files-public/index.ts +0 -166
- package/src/contracts/issuers/health/index.ts +0 -24
- package/src/contracts/issuers/index.ts +0 -112
- package/src/contracts/issuers/investor-accounts/index.ts +0 -148
- package/src/contracts/issuers/invites/index.ts +0 -129
- package/src/contracts/issuers/issuer/index.ts +0 -94
- package/src/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
- package/src/contracts/issuers/issuer-payment-methods/index.ts +0 -136
- package/src/contracts/issuers/kyc/index.ts +0 -38
- package/src/contracts/issuers/login-histories/index.ts +0 -51
- package/src/contracts/issuers/notes/index.ts +0 -69
- package/src/contracts/issuers/offerings/index.ts +0 -206
- package/src/contracts/issuers/pages/index.ts +0 -138
- package/src/contracts/issuers/payment-methods/index.ts +0 -61
- package/src/contracts/issuers/portfolios/index.ts +0 -36
- package/src/contracts/issuers/rejection-reasons/index.ts +0 -32
- package/src/contracts/issuers/review/index.ts +0 -63
- package/src/contracts/issuers/secondary-customers/index.ts +0 -55
- package/src/contracts/issuers/secondary-orders/index.ts +0 -57
- package/src/contracts/issuers/secondary-trades/index.ts +0 -57
- package/src/contracts/issuers/secure-requests/index.ts +0 -34
- package/src/contracts/issuers/site-links/index.ts +0 -116
- package/src/contracts/issuers/site-settings/index.ts +0 -585
- package/src/contracts/issuers/sites/index.ts +0 -32
- package/src/contracts/issuers/tasks/index.ts +0 -111
- package/src/contracts/issuers/trades/index.ts +0 -132
- package/src/contracts/issuers/transactions/index.ts +0 -158
- package/src/contracts/issuers/user-manuals/index.ts +0 -62
- package/src/contracts/issuers/user-settings/index.ts +0 -170
- package/src/contracts/issuers/users/index.ts +0 -126
- package/src/contracts/secondaries/accounts/index.ts +0 -58
- package/src/contracts/secondaries/index.ts +0 -23
- package/src/contracts/secondaries/secondary-customers/index.ts +0 -55
- package/src/contracts/secondaries/secondary-issuers/index.ts +0 -94
- package/src/contracts/secondaries/secondary-orders/index.ts +0 -56
- package/src/contracts/secondaries/secondary-securities/index.ts +0 -95
- package/src/contracts/secondaries/secondary-trades/index.ts +0 -56
- package/types/index.mjs +0 -10320
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { typeid } from 'typeid-js';
|
|
2
|
-
|
|
3
|
-
export enum QueueFrequency {
|
|
4
|
-
SUPER_HIGH_FREQUENCY = 'SUPER_HIGH_FREQUENCY',
|
|
5
|
-
HIGH_FREQUENCY = 'HIGH_FREQUENCY',
|
|
6
|
-
MEDIUM_FREQUENCY = 'MEDIUM_FREQUENCY',
|
|
7
|
-
LOW_FREQUENCY = 'LOW_FREQUENCY',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
interface QueueOptionsConfig {
|
|
11
|
-
removeOnComplete: number;
|
|
12
|
-
removeOnFail: number;
|
|
13
|
-
attempts: number;
|
|
14
|
-
backoff: {
|
|
15
|
-
type: 'exponential' | 'fixed';
|
|
16
|
-
delay: number;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const FREQUENCY_CONFIGS: Record<QueueFrequency, QueueOptionsConfig> = {
|
|
21
|
-
[QueueFrequency.SUPER_HIGH_FREQUENCY]: {
|
|
22
|
-
removeOnComplete: 50,
|
|
23
|
-
removeOnFail: 25,
|
|
24
|
-
attempts: 1,
|
|
25
|
-
backoff: {
|
|
26
|
-
type: 'fixed',
|
|
27
|
-
delay: 500,
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
[QueueFrequency.HIGH_FREQUENCY]: {
|
|
31
|
-
removeOnComplete: 50,
|
|
32
|
-
removeOnFail: 25,
|
|
33
|
-
attempts: 2,
|
|
34
|
-
backoff: {
|
|
35
|
-
type: 'fixed',
|
|
36
|
-
delay: 1000,
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
[QueueFrequency.MEDIUM_FREQUENCY]: {
|
|
40
|
-
removeOnComplete: 75,
|
|
41
|
-
removeOnFail: 35,
|
|
42
|
-
attempts: 3,
|
|
43
|
-
backoff: {
|
|
44
|
-
type: 'exponential',
|
|
45
|
-
delay: 1500,
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
[QueueFrequency.LOW_FREQUENCY]: {
|
|
49
|
-
removeOnComplete: 100,
|
|
50
|
-
removeOnFail: 50,
|
|
51
|
-
attempts: 3,
|
|
52
|
-
backoff: {
|
|
53
|
-
type: 'exponential',
|
|
54
|
-
delay: 2000,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Creates standardized BullMQ job options based on frequency and job ID
|
|
61
|
-
* @param jobId - Unique identifier for the job (for deduplication)
|
|
62
|
-
* @param frequency - Queue frequency level (defaults to LOW_FREQUENCY)
|
|
63
|
-
* @param customOptions - Optional custom options to override defaults
|
|
64
|
-
* @returns JobsOptions for BullMQ
|
|
65
|
-
*/
|
|
66
|
-
export function createQueueJobOptions(
|
|
67
|
-
jobId?: string,
|
|
68
|
-
frequency: QueueFrequency = QueueFrequency.LOW_FREQUENCY,
|
|
69
|
-
customOptions?: Partial<JobsOptions>,
|
|
70
|
-
): JobsOptions {
|
|
71
|
-
const config = FREQUENCY_CONFIGS[frequency];
|
|
72
|
-
const finalJobId = jobId || typeid('job').toString();
|
|
73
|
-
|
|
74
|
-
return {
|
|
75
|
-
jobId: finalJobId,
|
|
76
|
-
removeOnComplete: config.removeOnComplete,
|
|
77
|
-
removeOnFail: config.removeOnFail,
|
|
78
|
-
attempts: config.attempts,
|
|
79
|
-
backoff: config.backoff,
|
|
80
|
-
...customOptions,
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Convenience functions for each frequency level
|
|
86
|
-
*/
|
|
87
|
-
export const createSuperHighFrequencyJobOptions = (
|
|
88
|
-
jobId?: string,
|
|
89
|
-
customOptions?: Partial<JobsOptions>,
|
|
90
|
-
) =>
|
|
91
|
-
createQueueJobOptions(
|
|
92
|
-
jobId,
|
|
93
|
-
QueueFrequency.SUPER_HIGH_FREQUENCY,
|
|
94
|
-
customOptions,
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
export const createHighFrequencyJobOptions = (
|
|
98
|
-
jobId?: string,
|
|
99
|
-
customOptions?: Partial<JobsOptions>,
|
|
100
|
-
) => createQueueJobOptions(jobId, QueueFrequency.HIGH_FREQUENCY, customOptions);
|
|
101
|
-
|
|
102
|
-
export const createMediumFrequencyJobOptions = (
|
|
103
|
-
jobId?: string,
|
|
104
|
-
customOptions?: Partial<JobsOptions>,
|
|
105
|
-
) =>
|
|
106
|
-
createQueueJobOptions(jobId, QueueFrequency.MEDIUM_FREQUENCY, customOptions);
|
|
107
|
-
|
|
108
|
-
export const createLowFrequencyJobOptions = (
|
|
109
|
-
jobId?: string,
|
|
110
|
-
customOptions?: Partial<JobsOptions>,
|
|
111
|
-
) => createQueueJobOptions(jobId, QueueFrequency.LOW_FREQUENCY, customOptions);
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
3
|
-
import { TypeID } from 'typeid-js';
|
|
4
|
-
|
|
5
|
-
extendZodWithOpenApi(z);
|
|
6
|
-
|
|
7
|
-
export enum CommissionRateType {
|
|
8
|
-
FIXED = 'FIXED',
|
|
9
|
-
PERCENTAGE = 'PERCENTAGE',
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const registeredRepIdSchema = z.string().refine(
|
|
13
|
-
(value) => {
|
|
14
|
-
try {
|
|
15
|
-
const tid = TypeID.fromString(value);
|
|
16
|
-
return tid.getType() === 'registered_rep';
|
|
17
|
-
} catch {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
message:
|
|
23
|
-
'Invalid registered rep ID format. Must be a valid TypeID with "registered_rep" prefix. Example: registered_rep_01j5y5ghx8fvc83dmx3pznq7hv',
|
|
24
|
-
},
|
|
25
|
-
);
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { IBaseEntity } from './entity.types';
|
|
2
|
-
|
|
3
|
-
import { TypeID } from 'typeid-js';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
|
|
6
|
-
export const RejectionReasons = {
|
|
7
|
-
KYC: [
|
|
8
|
-
'ID document is expired',
|
|
9
|
-
'ID photo is blurry or unclear',
|
|
10
|
-
'ID does not match applicant’s name',
|
|
11
|
-
'Document type not accepted',
|
|
12
|
-
'Incomplete or missing ID submission',
|
|
13
|
-
],
|
|
14
|
-
AML: [
|
|
15
|
-
'Missing supporting financial documents',
|
|
16
|
-
'Income documentation not sufficient',
|
|
17
|
-
'CPA/Attorney letter is outdated or unsigned',
|
|
18
|
-
'Documents do not meet accreditation criteria',
|
|
19
|
-
],
|
|
20
|
-
AIC: [
|
|
21
|
-
'Individual appears on a sanctions list',
|
|
22
|
-
'Match found in politically exposed persons (PEP) database',
|
|
23
|
-
'Potential adverse media found',
|
|
24
|
-
'High-risk jurisdiction flagged',
|
|
25
|
-
'Name match flagged – additional verification required',
|
|
26
|
-
],
|
|
27
|
-
SUB_DOC: [
|
|
28
|
-
'Signature missing or incorrect',
|
|
29
|
-
'Incomplete or incorrectly filled document',
|
|
30
|
-
'Document version is outdated',
|
|
31
|
-
'Not all pages were submitted',
|
|
32
|
-
'Mismatch in investment amount',
|
|
33
|
-
],
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const rejectionReasonIdSchema = z.string().refine(
|
|
37
|
-
(value) => {
|
|
38
|
-
try {
|
|
39
|
-
const tid = TypeID.fromString(value);
|
|
40
|
-
return tid.getType() === 'rejection_reason';
|
|
41
|
-
} catch {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
message:
|
|
47
|
-
'Invalid rejection reason ID format. Must be a valid TypeID with "rejection_reason" prefix.',
|
|
48
|
-
},
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
export const RejectionReasonZod = IBaseEntity.extend({
|
|
52
|
-
id: z.string(),
|
|
53
|
-
reason: z.string(),
|
|
54
|
-
target: z.string(),
|
|
55
|
-
});
|
|
56
|
-
export type RejectionReasonZod = z.infer<typeof RejectionReasonZod>;
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
3
|
-
import {
|
|
4
|
-
AicStatus,
|
|
5
|
-
AMLStatus,
|
|
6
|
-
BaseStatus,
|
|
7
|
-
KYCStatus,
|
|
8
|
-
IPaginationMeta,
|
|
9
|
-
} from './common.types';
|
|
10
|
-
import { accountIdSchema } from './account.types';
|
|
11
|
-
import { individualIdSchema } from './individuals.types';
|
|
12
|
-
extendZodWithOpenApi(z);
|
|
13
|
-
|
|
14
|
-
export const AccountStats = z.object({
|
|
15
|
-
account: z.object({
|
|
16
|
-
id: accountIdSchema,
|
|
17
|
-
name: z.string(),
|
|
18
|
-
active: z.boolean(),
|
|
19
|
-
dba: z.string().nullable(),
|
|
20
|
-
}),
|
|
21
|
-
needsReview: z.number(),
|
|
22
|
-
pending: z.number(),
|
|
23
|
-
approved: z.number(),
|
|
24
|
-
rejected: z.number(),
|
|
25
|
-
manualReview: z.number(),
|
|
26
|
-
});
|
|
27
|
-
export type AccountStats = z.infer<typeof AccountStats>;
|
|
28
|
-
|
|
29
|
-
export const PendingReviewStats = z.object({
|
|
30
|
-
account: z.object({
|
|
31
|
-
id: z.string(),
|
|
32
|
-
name: z.string(),
|
|
33
|
-
}),
|
|
34
|
-
needsReview: z.number(),
|
|
35
|
-
pending: z.number(),
|
|
36
|
-
rejected: z.number(),
|
|
37
|
-
error: z.number(),
|
|
38
|
-
approved: z.number(),
|
|
39
|
-
});
|
|
40
|
-
export type PendingReviewStats = z.infer<typeof PendingReviewStats>;
|
|
41
|
-
|
|
42
|
-
export const GetPendingReviewResponse = z.object({
|
|
43
|
-
items: z.array(PendingReviewStats),
|
|
44
|
-
meta: IPaginationMeta,
|
|
45
|
-
});
|
|
46
|
-
export type GetPendingReviewResponse = z.infer<typeof GetPendingReviewResponse>;
|
|
47
|
-
|
|
48
|
-
export enum PendingReviewType {
|
|
49
|
-
PENDING_TRADES = 'PENDING_TRADES',
|
|
50
|
-
ALL = 'ALL',
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export enum StatusType {
|
|
54
|
-
AML = 'aml',
|
|
55
|
-
KYC = 'kyc',
|
|
56
|
-
AIC = 'aic',
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export const PendingReviewFilters = z.object({
|
|
60
|
-
type: z
|
|
61
|
-
.nativeEnum(PendingReviewType)
|
|
62
|
-
.optional()
|
|
63
|
-
.default(PendingReviewType.ALL),
|
|
64
|
-
statusType: z.nativeEnum(StatusType).optional().default(StatusType.KYC),
|
|
65
|
-
});
|
|
66
|
-
export type PendingReviewFilters = z.infer<typeof PendingReviewFilters>;
|
|
67
|
-
|
|
68
|
-
export const GetReviewKycResponse = z.array(AccountStats);
|
|
69
|
-
export type GetReviewKycResponse = z.infer<typeof GetReviewKycResponse>;
|
|
70
|
-
|
|
71
|
-
export const GetReviewAmlResponse = z.array(AccountStats);
|
|
72
|
-
export type GetReviewAmlResponse = z.infer<typeof GetReviewAmlResponse>;
|
|
73
|
-
|
|
74
|
-
export const GetReviewAicResponse = z.array(AccountStats);
|
|
75
|
-
export type GetReviewAicResponse = z.infer<typeof GetReviewAicResponse>;
|
|
76
|
-
|
|
77
|
-
export const ReviewKycFilters = z.object({
|
|
78
|
-
accountId: accountIdSchema.optional(),
|
|
79
|
-
kycStatus: z.nativeEnum(KYCStatus).optional(),
|
|
80
|
-
needsReview: z
|
|
81
|
-
.string()
|
|
82
|
-
.optional()
|
|
83
|
-
.default('false')
|
|
84
|
-
.refine(
|
|
85
|
-
(v) => {
|
|
86
|
-
return v === 'true' || v === 'false';
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
message: 'needsReview must be a boolean string',
|
|
90
|
-
},
|
|
91
|
-
),
|
|
92
|
-
});
|
|
93
|
-
export type ReviewKycFilters = z.infer<typeof ReviewKycFilters>;
|
|
94
|
-
|
|
95
|
-
export const ReviewAmlFilters = z.object({
|
|
96
|
-
accountId: accountIdSchema.optional(),
|
|
97
|
-
amlStatus: z.nativeEnum(AMLStatus).optional(),
|
|
98
|
-
needsReview: z
|
|
99
|
-
.string()
|
|
100
|
-
.optional()
|
|
101
|
-
.default('false')
|
|
102
|
-
.refine((v) => v === 'true' || v === 'false', {
|
|
103
|
-
message: 'needsReview must be a boolean string',
|
|
104
|
-
}),
|
|
105
|
-
});
|
|
106
|
-
export type ReviewAmlFilters = z.infer<typeof ReviewAmlFilters>;
|
|
107
|
-
|
|
108
|
-
export const ReviewAicFilters = z.object({
|
|
109
|
-
accountId: accountIdSchema.optional(),
|
|
110
|
-
aicStatus: z.nativeEnum(AicStatus).optional(),
|
|
111
|
-
needsReview: z
|
|
112
|
-
.string()
|
|
113
|
-
.optional()
|
|
114
|
-
.default('false')
|
|
115
|
-
.refine((v) => v === 'true' || v === 'false', {
|
|
116
|
-
message: 'needsReview must be a boolean string',
|
|
117
|
-
}),
|
|
118
|
-
});
|
|
119
|
-
export type ReviewAicFilters = z.infer<typeof ReviewAicFilters>;
|
|
120
|
-
|
|
121
|
-
export const PostReviewBody = z.object({
|
|
122
|
-
individualIds: z.array(individualIdSchema).min(1).max(100),
|
|
123
|
-
status: z.nativeEnum(BaseStatus),
|
|
124
|
-
});
|
|
125
|
-
export type PostReviewBody = z.infer<typeof PostReviewBody>;
|
|
126
|
-
|
|
127
|
-
export const PostReviewResponse = z.object({
|
|
128
|
-
individualsUpdated: z.array(accountIdSchema).min(1).max(100),
|
|
129
|
-
status: z.nativeEnum(BaseStatus),
|
|
130
|
-
reviewedBy: z.string(),
|
|
131
|
-
targetObject: z.any(),
|
|
132
|
-
});
|
|
133
|
-
export type PostReviewResponse = z.infer<typeof PostReviewResponse>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { PortalType, UserRole } from './common.types';
|
|
3
|
-
import { IBaseEntity } from './entity.types';
|
|
4
|
-
import { TypeID } from 'typeid-js';
|
|
5
|
-
|
|
6
|
-
export const roleIdSchema = z.string().refine(
|
|
7
|
-
(value) => {
|
|
8
|
-
try {
|
|
9
|
-
const tid = TypeID.fromString(value);
|
|
10
|
-
return tid.getType() === 'role';
|
|
11
|
-
} catch {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
message:
|
|
17
|
-
'Invalid role ID format. Must be a valid TypeID with "role" prefix.',
|
|
18
|
-
},
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
export const RoleZod = IBaseEntity.extend({
|
|
22
|
-
id: z.string(),
|
|
23
|
-
name: z.nativeEnum(UserRole),
|
|
24
|
-
type: z.nativeEnum(PortalType),
|
|
25
|
-
});
|
|
26
|
-
export type RoleZod = z.infer<typeof RoleZod>;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { TypeID } from 'typeid-js';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import {
|
|
4
|
-
ExchangeProvider,
|
|
5
|
-
IPaginationMeta,
|
|
6
|
-
PaginationOptionsZod,
|
|
7
|
-
} from './common.types';
|
|
8
|
-
import { IBaseEntity } from './entity.types';
|
|
9
|
-
import { accountIdSchema } from './account.types';
|
|
10
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
11
|
-
import { RawAccountData } from './exchange-provider.types';
|
|
12
|
-
|
|
13
|
-
extendZodWithOpenApi(z);
|
|
14
|
-
|
|
15
|
-
export const secondaryCustomerIdSchema = z.string().refine(
|
|
16
|
-
(value) => {
|
|
17
|
-
try {
|
|
18
|
-
const id = TypeID.fromString(value);
|
|
19
|
-
return id.getType() === 'secondary_customer';
|
|
20
|
-
} catch {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
message:
|
|
26
|
-
'Invalid secondary customer ID format. Must be a valid TypeID with "secondary_customer" prefix.',
|
|
27
|
-
},
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
export const SecondaryCustomer = IBaseEntity.extend({
|
|
31
|
-
accountId: accountIdSchema,
|
|
32
|
-
tid: z.string(),
|
|
33
|
-
provider: z.nativeEnum(ExchangeProvider).default(ExchangeProvider.PPEX),
|
|
34
|
-
rawAccountData: z.custom<RawAccountData>().nullable(),
|
|
35
|
-
});
|
|
36
|
-
export type SecondaryCustomer = z.infer<typeof SecondaryCustomer>;
|
|
37
|
-
|
|
38
|
-
export const IPaginatedSecondaryCustomers = z.object({
|
|
39
|
-
items: z.array(SecondaryCustomer),
|
|
40
|
-
meta: IPaginationMeta,
|
|
41
|
-
});
|
|
42
|
-
export type IPaginatedSecondaryCustomers = z.infer<
|
|
43
|
-
typeof IPaginatedSecondaryCustomers
|
|
44
|
-
>;
|
|
45
|
-
|
|
46
|
-
export const SecondaryCustomerFiltersZod = z.object({
|
|
47
|
-
accountId: accountIdSchema.optional(),
|
|
48
|
-
search: z.string().max(50).optional(),
|
|
49
|
-
provider: z.nativeEnum(ExchangeProvider).optional(),
|
|
50
|
-
tid: z.string().max(50).optional(),
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
export const GetSecondaryCustomerFiltersZod = PaginationOptionsZod.merge(
|
|
54
|
-
SecondaryCustomerFiltersZod,
|
|
55
|
-
);
|
|
56
|
-
export type GetSecondaryCustomerFiltersZod = z.infer<
|
|
57
|
-
typeof GetSecondaryCustomerFiltersZod
|
|
58
|
-
>;
|
|
59
|
-
|
|
60
|
-
export const ExportSecondaryCustomersResponse = z.object({
|
|
61
|
-
message: z.string(),
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
export type ExportSecondaryCustomersResponse = z.infer<
|
|
65
|
-
typeof ExportSecondaryCustomersResponse
|
|
66
|
-
>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { TypeID } from 'typeid-js';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
4
|
-
import { IBaseEntity } from './entity.types';
|
|
5
|
-
import { IPaginationMeta } from './common.types';
|
|
6
|
-
import { SecondarySecurityZod } from './secondary-security.types';
|
|
7
|
-
extendZodWithOpenApi(z);
|
|
8
|
-
|
|
9
|
-
export const secondaryIssuerIdSchema = z.string().refine(
|
|
10
|
-
(value) => {
|
|
11
|
-
try {
|
|
12
|
-
const tid = TypeID.fromString(value);
|
|
13
|
-
return tid.getType() === 'secondary_issuer';
|
|
14
|
-
} catch {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
message:
|
|
20
|
-
'Invalid secondary issuer id. Must be a valid id with "secondary_issuer" prefix.',
|
|
21
|
-
},
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
export const SecondaryIssuerZod = IBaseEntity.extend({
|
|
25
|
-
name: z.string(),
|
|
26
|
-
accountId: z.string().optional(),
|
|
27
|
-
securities: z.array(z.lazy(() => SecondarySecurityZod)),
|
|
28
|
-
ppexIssuerId: z.string().optional(),
|
|
29
|
-
});
|
|
30
|
-
export type SecondaryIssuerZod = z.infer<typeof SecondaryIssuerZod>;
|
|
31
|
-
|
|
32
|
-
export const IPaginatedSecondaryIssuers = z.object({
|
|
33
|
-
items: z.array(SecondaryIssuerZod),
|
|
34
|
-
meta: IPaginationMeta,
|
|
35
|
-
});
|
|
36
|
-
export type IPaginatedSecondaryIssuers = z.infer<
|
|
37
|
-
typeof IPaginatedSecondaryIssuers
|
|
38
|
-
>;
|
|
39
|
-
|
|
40
|
-
export const CreateSecondaryIssuer = z.object({
|
|
41
|
-
name: z.string().max(250),
|
|
42
|
-
ppexIssuerId: z.string().max(250),
|
|
43
|
-
});
|
|
44
|
-
export type CreateSecondaryIssuer = z.infer<typeof CreateSecondaryIssuer>;
|
|
45
|
-
|
|
46
|
-
export const UpdateSecondaryIssuer = z.object({
|
|
47
|
-
name: z.string().max(250).optional(),
|
|
48
|
-
ppexIssuerId: z.string().max(250).optional(),
|
|
49
|
-
});
|
|
50
|
-
export type UpdateSecondaryIssuer = z.infer<typeof UpdateSecondaryIssuer>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
2
|
-
import { TypeID } from 'typeid-js';
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
import { accountIdSchema } from './account.types';
|
|
5
|
-
import {
|
|
6
|
-
DateField,
|
|
7
|
-
DateRangeFiltersZod,
|
|
8
|
-
ExchangeProvider,
|
|
9
|
-
IPaginationMeta,
|
|
10
|
-
} from './common.types';
|
|
11
|
-
import { IBaseEntity } from './entity.types';
|
|
12
|
-
import { RawOrderData } from './exchange-provider.types';
|
|
13
|
-
|
|
14
|
-
extendZodWithOpenApi(z);
|
|
15
|
-
|
|
16
|
-
export const secondaryOrderIdSchema = z.string().refine(
|
|
17
|
-
(value) => {
|
|
18
|
-
try {
|
|
19
|
-
const tid = TypeID.fromString(value);
|
|
20
|
-
return tid.getType() === 'secondary_order';
|
|
21
|
-
} catch {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
message:
|
|
27
|
-
'Invalid secondary order id. Must be a valid id with "secondary_order" prefix.',
|
|
28
|
-
},
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
export const SecondaryOrder = IBaseEntity.extend({
|
|
32
|
-
accountId: z.string(),
|
|
33
|
-
tid: z.string(),
|
|
34
|
-
provider: z.nativeEnum(ExchangeProvider),
|
|
35
|
-
rawOrderData: z.custom<RawOrderData>().nullable(),
|
|
36
|
-
});
|
|
37
|
-
export type SecondaryOrder = z.infer<typeof SecondaryOrder>;
|
|
38
|
-
|
|
39
|
-
export const IPaginatedSecondaryOrders = z.object({
|
|
40
|
-
items: z.array(SecondaryOrder),
|
|
41
|
-
meta: IPaginationMeta,
|
|
42
|
-
});
|
|
43
|
-
export type IPaginatedSecondaryOrders = z.infer<
|
|
44
|
-
typeof IPaginatedSecondaryOrders
|
|
45
|
-
>;
|
|
46
|
-
|
|
47
|
-
export const SecondaryOrderFiltersZod = z.object({
|
|
48
|
-
accountId: accountIdSchema.optional(),
|
|
49
|
-
search: z.string().max(50).optional(),
|
|
50
|
-
provider: z.nativeEnum(ExchangeProvider).optional(),
|
|
51
|
-
tid: z.string().max(50).optional(),
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
export const SecondaryOrderDateRangeFiltersZod = DateRangeFiltersZod.extend({
|
|
55
|
-
dateField: z
|
|
56
|
-
.enum([DateField.CREATED_AT, DateField.RAW_ORDER_CREATED_DATE])
|
|
57
|
-
.optional(),
|
|
58
|
-
});
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { TypeID } from 'typeid-js';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
4
|
-
import { IBaseEntity } from './entity.types';
|
|
5
|
-
import { IPaginationMeta } from './common.types';
|
|
6
|
-
import { secondaryIssuerIdSchema } from './secondary-issuer.types';
|
|
7
|
-
import { accountIdSchema } from './account.types';
|
|
8
|
-
|
|
9
|
-
extendZodWithOpenApi(z);
|
|
10
|
-
|
|
11
|
-
export const secondarySecurityIdSchema = z.string().refine(
|
|
12
|
-
(value) => {
|
|
13
|
-
try {
|
|
14
|
-
const tid = TypeID.fromString(value);
|
|
15
|
-
return tid.getType() === 'secondary_security';
|
|
16
|
-
} catch {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
message:
|
|
22
|
-
'Invalid secondary security id. Must be a valid id with "secondary_security" prefix.',
|
|
23
|
-
},
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
export const SecondarySecurityZod = IBaseEntity.extend({
|
|
27
|
-
name: z.string(),
|
|
28
|
-
issuerId: z.lazy(() => secondaryIssuerIdSchema),
|
|
29
|
-
accountId: z.lazy(() => accountIdSchema),
|
|
30
|
-
ticker: z.string(),
|
|
31
|
-
ppexSecurityId: z.string(),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export type SecondarySecurityZod = z.infer<typeof SecondarySecurityZod>;
|
|
35
|
-
|
|
36
|
-
export const IPaginatedSecondarySecurities = z.object({
|
|
37
|
-
items: z.array(SecondarySecurityZod),
|
|
38
|
-
meta: IPaginationMeta,
|
|
39
|
-
});
|
|
40
|
-
export type IPaginatedSecondarySecurities = z.infer<
|
|
41
|
-
typeof IPaginatedSecondarySecurities
|
|
42
|
-
>;
|
|
43
|
-
|
|
44
|
-
export const CreateSecondarySecurity = z.object({
|
|
45
|
-
name: z.string().min(1).max(255),
|
|
46
|
-
issuerId: z.lazy(() => secondaryIssuerIdSchema),
|
|
47
|
-
accountId: z.lazy(() => accountIdSchema),
|
|
48
|
-
ticker: z.string().min(1).max(255),
|
|
49
|
-
ppexSecurityId: z.string().min(1).max(255),
|
|
50
|
-
});
|
|
51
|
-
export type CreateSecondarySecurity = z.infer<typeof CreateSecondarySecurity>;
|
|
52
|
-
|
|
53
|
-
export const UpdateSecondarySecurity = z.object({
|
|
54
|
-
name: z.string().min(1).max(255).optional(),
|
|
55
|
-
issuerId: z.lazy(() => secondaryIssuerIdSchema).optional(),
|
|
56
|
-
accountId: z.lazy(() => accountIdSchema).optional(),
|
|
57
|
-
ticker: z.string().min(1).max(255).optional(),
|
|
58
|
-
ppexSecurityId: z.string().min(1).max(255).optional(),
|
|
59
|
-
});
|
|
60
|
-
export type UpdateSecondarySecurity = z.infer<typeof UpdateSecondarySecurity>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { BaseStatus } from './common.types';
|
|
3
|
-
|
|
4
|
-
export enum PhoenixApprovalStatus {
|
|
5
|
-
APPROVED = BaseStatus.APPROVED,
|
|
6
|
-
PENDING = BaseStatus.PENDING,
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const PhoenixSecondaryTradePayloadZod = z.object({
|
|
10
|
-
investment_ids: z.string(),
|
|
11
|
-
approval_status: z.nativeEnum(PhoenixApprovalStatus),
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
export type PhoenixSecondaryTradePayload = z.infer<
|
|
15
|
-
typeof PhoenixSecondaryTradePayloadZod
|
|
16
|
-
>;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { TypeID } from 'typeid-js';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
4
|
-
import { IBaseEntity } from './entity.types';
|
|
5
|
-
import {
|
|
6
|
-
ComplianceReview,
|
|
7
|
-
DateField,
|
|
8
|
-
DateRangeFiltersZod,
|
|
9
|
-
ExchangeProvider,
|
|
10
|
-
} from './common.types';
|
|
11
|
-
import { RawTradeData } from './exchange-provider.types';
|
|
12
|
-
import { IPaginationMeta } from './common.types';
|
|
13
|
-
import { accountIdSchema } from './account.types';
|
|
14
|
-
extendZodWithOpenApi(z);
|
|
15
|
-
|
|
16
|
-
export const secondaryTradeIdSchema = z.string().refine(
|
|
17
|
-
(value) => {
|
|
18
|
-
try {
|
|
19
|
-
const tid = TypeID.fromString(value);
|
|
20
|
-
return tid.getType() === 'secondary_trade';
|
|
21
|
-
} catch {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
message:
|
|
27
|
-
'Invalid secondary trade id. Must be a valid id with "secondary_trade" prefix.',
|
|
28
|
-
},
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
export const SecondaryTradeZod = IBaseEntity.extend({
|
|
32
|
-
accountId: z.string(),
|
|
33
|
-
tid: z.string(),
|
|
34
|
-
provider: z.nativeEnum(ExchangeProvider),
|
|
35
|
-
complianceReview: z.nativeEnum(ComplianceReview),
|
|
36
|
-
complianceReviewNotes: z.string().nullable(),
|
|
37
|
-
complianceReviewerId: z.string().nullable(),
|
|
38
|
-
rawTradeData: z.custom<RawTradeData>().nullable(),
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
export type SecondaryTrade = z.infer<typeof SecondaryTradeZod>;
|
|
42
|
-
|
|
43
|
-
export const IPaginatedSecondaryTrades = z.object({
|
|
44
|
-
items: z.array(SecondaryTradeZod),
|
|
45
|
-
meta: IPaginationMeta,
|
|
46
|
-
});
|
|
47
|
-
export type IPaginatedSecondaryTrades = z.infer<
|
|
48
|
-
typeof IPaginatedSecondaryTrades
|
|
49
|
-
>;
|
|
50
|
-
|
|
51
|
-
export const SecondaryTradeFiltersZod = z.object({
|
|
52
|
-
accountId: accountIdSchema.optional(),
|
|
53
|
-
search: z.string().max(50).optional(),
|
|
54
|
-
provider: z.nativeEnum(ExchangeProvider).optional(),
|
|
55
|
-
tid: z.string().max(50).optional(),
|
|
56
|
-
complianceReview: z.nativeEnum(ComplianceReview).optional(),
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
export type SecondaryTradeFiltersZod = z.infer<typeof SecondaryTradeFiltersZod>;
|
|
60
|
-
export const ExportSecondaryTradesResponse = z.object({
|
|
61
|
-
message: z.string(),
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
export type ExportSecondaryTradesResponse = z.infer<
|
|
65
|
-
typeof ExportSecondaryTradesResponse
|
|
66
|
-
>;
|
|
67
|
-
|
|
68
|
-
export const SecondaryTradeDateRangeFiltersZod = DateRangeFiltersZod.extend({
|
|
69
|
-
dateField: z
|
|
70
|
-
.enum([DateField.CREATED_AT, DateField.RAW_TRADE_CREATED_DATE])
|
|
71
|
-
.optional(),
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
export const SecondaryTradeSummaryZod = z.object({
|
|
75
|
-
accountId: accountIdSchema,
|
|
76
|
-
accountName: z.string(),
|
|
77
|
-
totalNeedsReviewCount: z.number().int(),
|
|
78
|
-
totalReadyToApproveCount: z.number().int(),
|
|
79
|
-
});
|
|
80
|
-
export type SecondaryTradeSummaryZod = z.infer<typeof SecondaryTradeSummaryZod>;
|
|
81
|
-
|
|
82
|
-
export const IPaginatedSecondaryTradeSummaryResponse = z.object({
|
|
83
|
-
items: z.array(SecondaryTradeSummaryZod),
|
|
84
|
-
meta: IPaginationMeta,
|
|
85
|
-
});
|
|
86
|
-
export type IPaginatedSecondaryTradeSummaryResponse = z.infer<
|
|
87
|
-
typeof IPaginatedSecondaryTradeSummaryResponse
|
|
88
|
-
>;
|
|
89
|
-
|
|
90
|
-
export const CountResultZod = z.array(
|
|
91
|
-
z.object({
|
|
92
|
-
count: z.string(),
|
|
93
|
-
}),
|
|
94
|
-
);
|
|
95
|
-
export type CountResultZod = z.infer<typeof CountResultZod>;
|