@dalmore/api-contracts 1.0.3 → 1.0.6
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.mjs +1001 -18638
- package/package.json +5 -53
- package/src/common/types/address.spec.ts +203 -0
- package/src/common/types/batch-jobs.types.ts +1 -0
- package/src/common/types/common.types.spec.ts +336 -0
- package/src/common/types/files.types.spec.ts +154 -0
- package/src/common/types/issuer-payment-method.types.spec.ts +612 -0
- package/src/common/types/offering.types.spec.ts +91 -0
- package/src/common/types/phone.spec.ts +76 -0
- package/src/common/types/queue.types.ts +1 -0
- package/src/common/types/reminder-config.types.ts +40 -0
- package/src/common/types/site-link.types.spec.ts +134 -0
- package/src/common/types/trade.types.ts +2 -4
- 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/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
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { PhoneZodSchema } from './phone.type';
|
|
2
|
+
|
|
3
|
+
describe('PhoneSchema Tests', () => {
|
|
4
|
+
it('should pass if US phone is valid', () => {
|
|
5
|
+
const phone = '+1-212-456-7890';
|
|
6
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
7
|
+
|
|
8
|
+
const result = parseRes.success;
|
|
9
|
+
expect(result).toBeTruthy();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('should pass if EG phone is valid', () => {
|
|
13
|
+
const phone = '+201088511706';
|
|
14
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
15
|
+
|
|
16
|
+
const result = parseRes.success;
|
|
17
|
+
expect(result).toBeTruthy();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should fail if EG phone is not valid', () => {
|
|
21
|
+
const phone = '+2010885101706';
|
|
22
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
23
|
+
|
|
24
|
+
const result = parseRes.success;
|
|
25
|
+
expect(result).toBeFalsy();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('should fail if phone is not valid', () => {
|
|
29
|
+
const phone = '+201706';
|
|
30
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
31
|
+
|
|
32
|
+
const result = parseRes.success;
|
|
33
|
+
expect(result).toBeFalsy();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should not fail if phone is empty string', () => {
|
|
37
|
+
const phone = '';
|
|
38
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
39
|
+
|
|
40
|
+
const result = parseRes.success;
|
|
41
|
+
expect(result).toBeTruthy();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should fail if phone is too long string', () => {
|
|
45
|
+
const phone = '+125055501990001';
|
|
46
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
47
|
+
|
|
48
|
+
const result = parseRes.success;
|
|
49
|
+
expect(result).toBeFalsy();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should fail if phone contains letters', () => {
|
|
53
|
+
const phone = '+12505d50199';
|
|
54
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
55
|
+
|
|
56
|
+
const result = parseRes.success;
|
|
57
|
+
expect(result).toBeFalsy();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it('should pass if US phone is valid', () => {
|
|
61
|
+
const phone = '+12505550199';
|
|
62
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
63
|
+
|
|
64
|
+
const result = parseRes.success;
|
|
65
|
+
expect(result).toBeTruthy();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('should pass if US phone is valid', () => {
|
|
69
|
+
const phone = '+12124567890';
|
|
70
|
+
|
|
71
|
+
const parseRes = PhoneZodSchema.safeParse(phone);
|
|
72
|
+
|
|
73
|
+
const result = parseRes.success;
|
|
74
|
+
expect(result).toBeTruthy();
|
|
75
|
+
});
|
|
76
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Job } from 'bullmq';
|
|
2
|
+
import { QueryRunner } from 'typeorm';
|
|
3
|
+
import { Site } from '../../sites/entities/site.entity';
|
|
4
|
+
import { ProcessTradeCancellationReminderDto } from '../../workers/dto.worker';
|
|
5
|
+
|
|
6
|
+
export enum ReminderType {
|
|
7
|
+
DAILY = 'daily',
|
|
8
|
+
CUMULATIVE = 'cumulative',
|
|
9
|
+
WARNING = 'warning',
|
|
10
|
+
CANCEL = 'cancel',
|
|
11
|
+
SKIP = 'skip', // for days with no action
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface ReminderConfig {
|
|
15
|
+
day: number;
|
|
16
|
+
type: ReminderType;
|
|
17
|
+
daysLeft?: number; // for warning type
|
|
18
|
+
createTask?: boolean; // for daily type
|
|
19
|
+
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface ReminderTemplate {
|
|
23
|
+
subject: (params: ReminderTemplateParams) => string;
|
|
24
|
+
description: (params: ReminderTemplateParams) => string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface ReminderTemplateParams {
|
|
28
|
+
day: number;
|
|
29
|
+
offeringName: string;
|
|
30
|
+
daysLeft?: number;
|
|
31
|
+
userName: string;
|
|
32
|
+
tradeStatus: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface ReminderContext {
|
|
36
|
+
queryRunner: QueryRunner;
|
|
37
|
+
job: Job<ProcessTradeCancellationReminderDto>;
|
|
38
|
+
site: Site;
|
|
39
|
+
logContext: any;
|
|
40
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SiteLinkType,
|
|
3
|
+
PostSiteLinkZod,
|
|
4
|
+
createSocialMediaUrlSchema,
|
|
5
|
+
} from './site-link.types';
|
|
6
|
+
|
|
7
|
+
describe('PostSiteLinkZod', () => {
|
|
8
|
+
it('should validate a valid Facebook link', () => {
|
|
9
|
+
const validData = {
|
|
10
|
+
type: SiteLinkType.FACEBOOK,
|
|
11
|
+
url: 'https://facebook.com/validpage',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
15
|
+
expect(result.success).toBe(true);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should validate a valid LinkedIn link', () => {
|
|
19
|
+
const validData = {
|
|
20
|
+
type: SiteLinkType.LINKEDIN,
|
|
21
|
+
url: 'https://linkedin.com/in/validprofile',
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
25
|
+
expect(result.success).toBe(true);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('should validate a valid Twitter link', () => {
|
|
29
|
+
const validData = {
|
|
30
|
+
type: SiteLinkType.TWITTER,
|
|
31
|
+
url: 'https://twitter.com/validhandle',
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
35
|
+
expect(result.success).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should validate when url is null', () => {
|
|
39
|
+
const validData = {
|
|
40
|
+
type: SiteLinkType.FACEBOOK,
|
|
41
|
+
url: null,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
45
|
+
expect(result.success).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should validate when url is undefined', () => {
|
|
49
|
+
const validData = {
|
|
50
|
+
type: SiteLinkType.FACEBOOK,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
54
|
+
expect(result.success).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('should validate a WEBSITE type with any valid URL', () => {
|
|
58
|
+
const validData = {
|
|
59
|
+
type: SiteLinkType.WEBSITE,
|
|
60
|
+
url: 'https://example.com',
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
64
|
+
expect(result.success).toBe(true);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('should validate an OTHER type with any valid URL', () => {
|
|
68
|
+
const validData = {
|
|
69
|
+
type: SiteLinkType.OTHER,
|
|
70
|
+
url: 'https://example.org',
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const result = PostSiteLinkZod.safeParse(validData);
|
|
74
|
+
expect(result.success).toBe(true);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('should reject an invalid Facebook URL', () => {
|
|
78
|
+
const invalidData = {
|
|
79
|
+
type: SiteLinkType.FACEBOOK,
|
|
80
|
+
url: 'https://not-facebook.com/profile',
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const result = PostSiteLinkZod.safeParse(invalidData);
|
|
84
|
+
expect(result.success).toBe(false);
|
|
85
|
+
if (!result.success) {
|
|
86
|
+
expect(result.error.issues[0]!.path).toContain('url');
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('should reject an invalid URL format', () => {
|
|
91
|
+
const invalidData = {
|
|
92
|
+
type: SiteLinkType.WEBSITE,
|
|
93
|
+
url: 'not-a-valid-url',
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const result = PostSiteLinkZod.safeParse(invalidData);
|
|
97
|
+
expect(result.success).toBe(false);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('should require type field', () => {
|
|
101
|
+
const invalidData = {
|
|
102
|
+
url: 'https://example.com',
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const result = PostSiteLinkZod.safeParse(invalidData as any);
|
|
106
|
+
expect(result.success).toBe(false);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
describe('createSocialMediaUrlSchema', () => {
|
|
111
|
+
it('should validate a correct Facebook URL', () => {
|
|
112
|
+
const schema = createSocialMediaUrlSchema(SiteLinkType.FACEBOOK);
|
|
113
|
+
const result = schema.safeParse('https://facebook.com/validpage');
|
|
114
|
+
expect(result.success).toBe(true);
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it('should validate a correct Facebook URL with www', () => {
|
|
118
|
+
const schema = createSocialMediaUrlSchema(SiteLinkType.FACEBOOK);
|
|
119
|
+
const result = schema.safeParse('https://www.facebook.com/validpage');
|
|
120
|
+
expect(result.success).toBe(true);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('should reject an incorrect Facebook URL', () => {
|
|
124
|
+
const schema = createSocialMediaUrlSchema(SiteLinkType.FACEBOOK);
|
|
125
|
+
const result = schema.safeParse('https://not-facebook.com/profile');
|
|
126
|
+
expect(result.success).toBe(false);
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it('should handle null values', () => {
|
|
130
|
+
const schema = createSocialMediaUrlSchema(SiteLinkType.FACEBOOK);
|
|
131
|
+
const result = schema.safeParse(null);
|
|
132
|
+
expect(result.success).toBe(true);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
@@ -53,10 +53,8 @@ import {
|
|
|
53
53
|
SecondaryTrade,
|
|
54
54
|
SecondaryTradeFiltersZod,
|
|
55
55
|
} from './secondary-trade.types';
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
type InvestorAccount = Record<string, unknown>;
|
|
59
|
-
type Trade = Record<string, unknown>;
|
|
56
|
+
import { InvestorAccount } from '../../investor-accounts/entities/investor-account.entity';
|
|
57
|
+
import { Trade } from '../../trades/entities/trade.entity';
|
|
60
58
|
|
|
61
59
|
extendZodWithOpenApi(z);
|
|
62
60
|
export const CheckResultsSchema = z.object({
|