@dalmore/api-contracts 1.0.2 → 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.
Files changed (295) hide show
  1. package/README.md +34 -55
  2. package/index.d.mts +17 -0
  3. package/index.d.ts +17 -0
  4. package/index.mjs +10970 -0
  5. package/package.json +10 -46
  6. package/common/helpers/index.ts +0 -205
  7. package/common/types/account-contact.types.ts +0 -98
  8. package/common/types/account-detail.types.ts +0 -27
  9. package/common/types/account-integration.types.ts +0 -143
  10. package/common/types/account-manager.types.ts +0 -124
  11. package/common/types/account.types.ts +0 -296
  12. package/common/types/activity.types.ts +0 -274
  13. package/common/types/address.types.ts +0 -41
  14. package/common/types/aic.types.ts +0 -246
  15. package/common/types/aml.types.ts +0 -18
  16. package/common/types/api-key-logs.types.ts +0 -66
  17. package/common/types/api-keys.types.ts +0 -69
  18. package/common/types/asset.types.ts +0 -338
  19. package/common/types/auth.types.ts +0 -370
  20. package/common/types/batch-jobs.types.ts +0 -150
  21. package/common/types/bonus-tier.types.ts +0 -147
  22. package/common/types/cart.types.ts +0 -18
  23. package/common/types/checklist-items.types.ts +0 -70
  24. package/common/types/checklist.types.ts +0 -97
  25. package/common/types/common.types.ts +0 -1520
  26. package/common/types/comply-advantage-api.types.ts +0 -316
  27. package/common/types/comply-advantage.types.ts +0 -25
  28. package/common/types/contact-us.types.ts +0 -107
  29. package/common/types/contract-helpers.ts +0 -205
  30. package/common/types/countries.types.ts +0 -375
  31. package/common/types/covered-person.types.ts +0 -274
  32. package/common/types/dashboard.types.ts +0 -799
  33. package/common/types/data-record.types.ts +0 -325
  34. package/common/types/data-room.types.ts +0 -242
  35. package/common/types/default-theme-config.types.ts +0 -87
  36. package/common/types/disbursement-adjustment.types.ts +0 -32
  37. package/common/types/disbursement-approval-user.types.ts +0 -100
  38. package/common/types/disbursement-review.types.ts +0 -110
  39. package/common/types/disbursement-transaction.types.ts +0 -72
  40. package/common/types/disbursements.types.ts +0 -310
  41. package/common/types/domain-filter.types.ts +0 -55
  42. package/common/types/email-theme.types.ts +0 -442
  43. package/common/types/entity.types.ts +0 -15
  44. package/common/types/error-responses.types.ts +0 -135
  45. package/common/types/escrow-account.types.ts +0 -104
  46. package/common/types/exchange-api-key.types.ts +0 -121
  47. package/common/types/exchange-import.types.ts +0 -36
  48. package/common/types/exchange-provider.types.ts +0 -329
  49. package/common/types/file.types.ts +0 -461
  50. package/common/types/health.types.ts +0 -29
  51. package/common/types/index.ts +0 -48
  52. package/common/types/individuals.types.ts +0 -554
  53. package/common/types/investor-account.types.ts +0 -1239
  54. package/common/types/investorAccountIdSchema.type.ts +0 -0
  55. package/common/types/investors-offering.types.ts +0 -65
  56. package/common/types/invite.types.ts +0 -133
  57. package/common/types/issuer-bank-account.types.ts +0 -107
  58. package/common/types/issuer-offering.types.ts +0 -306
  59. package/common/types/issuer-payment-method.types.ts +0 -341
  60. package/common/types/issuer.types.ts +0 -312
  61. package/common/types/job-item.types.ts +0 -119
  62. package/common/types/jobs.types.ts +0 -171
  63. package/common/types/kyb.types.ts +0 -53
  64. package/common/types/kyc.types.ts +0 -188
  65. package/common/types/legal-entity.types.ts +0 -185
  66. package/common/types/login-history.types.ts +0 -46
  67. package/common/types/mail-template.types.ts +0 -436
  68. package/common/types/north-cap-integration.types.ts +0 -190
  69. package/common/types/note.types.ts +0 -109
  70. package/common/types/notification.types.ts +0 -58
  71. package/common/types/notion-api.types.ts +0 -374
  72. package/common/types/notion-database.types.ts +0 -125
  73. package/common/types/notion-page.types.ts +0 -267
  74. package/common/types/offering-reports.types.ts +0 -153
  75. package/common/types/offering-submission.types.ts +0 -314
  76. package/common/types/offering.types.ts +0 -590
  77. package/common/types/page-revision.types.ts +0 -86
  78. package/common/types/page.types.ts +0 -436
  79. package/common/types/password.type.ts +0 -15
  80. package/common/types/payment-methods.types.ts +0 -298
  81. package/common/types/phone.type.ts +0 -27
  82. package/common/types/portfolio.types.ts +0 -50
  83. package/common/types/privacy-policy-and-tos.types.ts +0 -231
  84. package/common/types/queue.types.ts +0 -111
  85. package/common/types/registered-reps.types.ts +0 -25
  86. package/common/types/rejection-reasons.types.ts +0 -56
  87. package/common/types/review.types.ts +0 -133
  88. package/common/types/role.types.ts +0 -26
  89. package/common/types/secondary-customer.types.ts +0 -66
  90. package/common/types/secondary-issuer.types.ts +0 -50
  91. package/common/types/secondary-order.types.ts +0 -58
  92. package/common/types/secondary-security.types.ts +0 -60
  93. package/common/types/secondary-trade.entity.ts +0 -16
  94. package/common/types/secondary-trade.types.ts +0 -95
  95. package/common/types/secure-request.types.ts +0 -68
  96. package/common/types/signer.types.ts +0 -651
  97. package/common/types/site-link.types.ts +0 -166
  98. package/common/types/site-settings.types.ts +0 -726
  99. package/common/types/site.types.ts +0 -270
  100. package/common/types/sms.types.ts +0 -30
  101. package/common/types/state-machine.types.ts +0 -177
  102. package/common/types/states.types.ts +0 -163
  103. package/common/types/subdoc-preview.types.ts +0 -35
  104. package/common/types/task.types.ts +0 -258
  105. package/common/types/trade-adjustment.type.ts +0 -33
  106. package/common/types/trade-line-item.type.ts +0 -132
  107. package/common/types/trade.types.ts +0 -931
  108. package/common/types/transaction.types.ts +0 -198
  109. package/common/types/trusted-contact.types.ts +0 -122
  110. package/common/types/typography.types.ts +0 -75
  111. package/common/types/user-manual.types.ts +0 -290
  112. package/common/types/user-setting.types.ts +0 -133
  113. package/common/types/user.types.ts +0 -320
  114. package/common/types/webhook.types.ts +0 -588
  115. package/common/types/zip.type.ts +0 -36
  116. package/contracts/clients/accounts/index.ts +0 -61
  117. package/contracts/clients/aic/index.ts +0 -59
  118. package/contracts/clients/api-key-logs/index.ts +0 -53
  119. package/contracts/clients/api-keys/index.ts +0 -73
  120. package/contracts/clients/assets/index.ts +0 -102
  121. package/contracts/clients/auth/index.ts +0 -50
  122. package/contracts/clients/files/index.ts +0 -166
  123. package/contracts/clients/files-public/index.ts +0 -166
  124. package/contracts/clients/index.ts +0 -44
  125. package/contracts/clients/individuals/index.ts +0 -93
  126. package/contracts/clients/investor-accounts/index.ts +0 -93
  127. package/contracts/clients/issuers/index.ts +0 -94
  128. package/contracts/clients/legal-entities/index.ts +0 -93
  129. package/contracts/clients/offerings/index.ts +0 -117
  130. package/contracts/clients/secure-requests/index.ts +0 -34
  131. package/contracts/clients/sites/index.ts +0 -56
  132. package/contracts/clients/trades/index.ts +0 -122
  133. package/contracts/compliance/account-contacts/index.ts +0 -82
  134. package/contracts/compliance/account-managers/index.ts +0 -142
  135. package/contracts/compliance/accounts/index.ts +0 -187
  136. package/contracts/compliance/activities/index.ts +0 -55
  137. package/contracts/compliance/aic/index.ts +0 -60
  138. package/contracts/compliance/api-keys/index.ts +0 -91
  139. package/contracts/compliance/assets/index.ts +0 -122
  140. package/contracts/compliance/auth/index.ts +0 -134
  141. package/contracts/compliance/batch-jobs/index.ts +0 -62
  142. package/contracts/compliance/bonus-tiers/index.ts +0 -55
  143. package/contracts/compliance/checklist/index.ts +0 -87
  144. package/contracts/compliance/checklist-items/index.ts +0 -86
  145. package/contracts/compliance/covered-persons/index.ts +0 -97
  146. package/contracts/compliance/dashboard/index.ts +0 -111
  147. package/contracts/compliance/data-records/index.ts +0 -116
  148. package/contracts/compliance/data-rooms/index.ts +0 -113
  149. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  150. package/contracts/compliance/disbursement/index.ts +0 -165
  151. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  152. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  153. package/contracts/compliance/domain-filters/index.ts +0 -117
  154. package/contracts/compliance/email-themes/index.ts +0 -284
  155. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  156. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  157. package/contracts/compliance/exchange-imports/index.ts +0 -137
  158. package/contracts/compliance/files/index.ts +0 -267
  159. package/contracts/compliance/files-public/index.ts +0 -188
  160. package/contracts/compliance/health/index.ts +0 -26
  161. package/contracts/compliance/index.ts +0 -147
  162. package/contracts/compliance/individuals/index.ts +0 -57
  163. package/contracts/compliance/investor-accounts/index.ts +0 -141
  164. package/contracts/compliance/invites/index.ts +0 -137
  165. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  166. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  167. package/contracts/compliance/issuers/index.ts +0 -97
  168. package/contracts/compliance/job-items/index.ts +0 -58
  169. package/contracts/compliance/jobs/index.ts +0 -59
  170. package/contracts/compliance/kyb/index.ts +0 -54
  171. package/contracts/compliance/kyc/index.ts +0 -77
  172. package/contracts/compliance/legal-entities/index.ts +0 -57
  173. package/contracts/compliance/login-histories/index.ts +0 -37
  174. package/contracts/compliance/notes/index.ts +0 -69
  175. package/contracts/compliance/notion-databases/index.ts +0 -107
  176. package/contracts/compliance/notion-pages/index.ts +0 -105
  177. package/contracts/compliance/offering-reports/index.ts +0 -149
  178. package/contracts/compliance/offerings/index.ts +0 -233
  179. package/contracts/compliance/pages/index.ts +0 -178
  180. package/contracts/compliance/payment-methods/index.ts +0 -57
  181. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  182. package/contracts/compliance/review/index.ts +0 -169
  183. package/contracts/compliance/roles/index.ts +0 -34
  184. package/contracts/compliance/secondary-customers/index.ts +0 -77
  185. package/contracts/compliance/secondary-orders/index.ts +0 -60
  186. package/contracts/compliance/secondary-trades/index.ts +0 -100
  187. package/contracts/compliance/secure-requests/index.ts +0 -54
  188. package/contracts/compliance/signer/index.ts +0 -369
  189. package/contracts/compliance/site-links/index.ts +0 -128
  190. package/contracts/compliance/site-settings/index.ts +0 -669
  191. package/contracts/compliance/sites/index.ts +0 -56
  192. package/contracts/compliance/state-machine/index.ts +0 -94
  193. package/contracts/compliance/tasks/index.ts +0 -91
  194. package/contracts/compliance/third-parties/index.ts +0 -52
  195. package/contracts/compliance/trade-line-items/index.ts +0 -59
  196. package/contracts/compliance/trades/index.ts +0 -230
  197. package/contracts/compliance/transactions/index.ts +0 -161
  198. package/contracts/compliance/user-manuals/index.ts +0 -271
  199. package/contracts/compliance/user-settings/index.ts +0 -189
  200. package/contracts/compliance/users/index.ts +0 -200
  201. package/contracts/compliance/webhooks/index.ts +0 -41
  202. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  203. package/contracts/compliance-apikey/index.ts +0 -14
  204. package/contracts/index.ts +0 -6
  205. package/contracts/investors/account-contacts/index.ts +0 -58
  206. package/contracts/investors/aic/index.ts +0 -59
  207. package/contracts/investors/assets/index.ts +0 -61
  208. package/contracts/investors/auth/index.ts +0 -116
  209. package/contracts/investors/bonus-tiers/index.ts +0 -37
  210. package/contracts/investors/cart/index.ts +0 -75
  211. package/contracts/investors/contact-us/index.ts +0 -48
  212. package/contracts/investors/data-records/index.ts +0 -113
  213. package/contracts/investors/data-rooms/index.ts +0 -96
  214. package/contracts/investors/files/index.ts +0 -167
  215. package/contracts/investors/files-public/index.ts +0 -185
  216. package/contracts/investors/index.ts +0 -72
  217. package/contracts/investors/individuals/index.ts +0 -99
  218. package/contracts/investors/investor-accounts/index.ts +0 -110
  219. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  220. package/contracts/investors/issuers/index.ts +0 -30
  221. package/contracts/investors/legal-entities/index.ts +0 -93
  222. package/contracts/investors/notes/index.ts +0 -69
  223. package/contracts/investors/offerings/index.ts +0 -93
  224. package/contracts/investors/pages/index.ts +0 -88
  225. package/contracts/investors/payment-methods/index.ts +0 -149
  226. package/contracts/investors/portfolios/index.ts +0 -53
  227. package/contracts/investors/sites/index.ts +0 -96
  228. package/contracts/investors/tasks/index.ts +0 -111
  229. package/contracts/investors/trade-line-items/index.ts +0 -75
  230. package/contracts/investors/trades/index.ts +0 -114
  231. package/contracts/investors/transactions/index.ts +0 -37
  232. package/contracts/investors/trusted-contacts/index.ts +0 -93
  233. package/contracts/investors/user-manuals/index.ts +0 -62
  234. package/contracts/investors/user-settings/index.ts +0 -170
  235. package/contracts/investors/users/index.ts +0 -45
  236. package/contracts/investors/webhooks/index.ts +0 -30
  237. package/contracts/issuers/account-contacts/index.ts +0 -76
  238. package/contracts/issuers/account-integrations/index.ts +0 -97
  239. package/contracts/issuers/accounts/index.ts +0 -97
  240. package/contracts/issuers/activities/index.ts +0 -54
  241. package/contracts/issuers/aic/index.ts +0 -39
  242. package/contracts/issuers/api-key-logs/index.ts +0 -53
  243. package/contracts/issuers/api-keys/index.ts +0 -93
  244. package/contracts/issuers/assets/index.ts +0 -122
  245. package/contracts/issuers/auth/index.ts +0 -152
  246. package/contracts/issuers/bonus-tiers/index.ts +0 -55
  247. package/contracts/issuers/contact-us/index.ts +0 -48
  248. package/contracts/issuers/covered-persons/index.ts +0 -136
  249. package/contracts/issuers/dashboard/index.ts +0 -72
  250. package/contracts/issuers/data-records/index.ts +0 -257
  251. package/contracts/issuers/data-rooms/index.ts +0 -134
  252. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  253. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  254. package/contracts/issuers/disbursements/index.ts +0 -153
  255. package/contracts/issuers/email-themes/index.ts +0 -242
  256. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  257. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  258. package/contracts/issuers/files/index.ts +0 -166
  259. package/contracts/issuers/files-public/index.ts +0 -166
  260. package/contracts/issuers/health/index.ts +0 -24
  261. package/contracts/issuers/index.ts +0 -112
  262. package/contracts/issuers/investor-accounts/index.ts +0 -148
  263. package/contracts/issuers/invites/index.ts +0 -129
  264. package/contracts/issuers/issuer/index.ts +0 -94
  265. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  266. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  267. package/contracts/issuers/kyc/index.ts +0 -38
  268. package/contracts/issuers/login-histories/index.ts +0 -51
  269. package/contracts/issuers/notes/index.ts +0 -69
  270. package/contracts/issuers/offerings/index.ts +0 -206
  271. package/contracts/issuers/pages/index.ts +0 -138
  272. package/contracts/issuers/payment-methods/index.ts +0 -61
  273. package/contracts/issuers/portfolios/index.ts +0 -36
  274. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  275. package/contracts/issuers/review/index.ts +0 -63
  276. package/contracts/issuers/secondary-customers/index.ts +0 -55
  277. package/contracts/issuers/secondary-orders/index.ts +0 -57
  278. package/contracts/issuers/secondary-trades/index.ts +0 -57
  279. package/contracts/issuers/secure-requests/index.ts +0 -34
  280. package/contracts/issuers/site-links/index.ts +0 -116
  281. package/contracts/issuers/site-settings/index.ts +0 -585
  282. package/contracts/issuers/sites/index.ts +0 -32
  283. package/contracts/issuers/tasks/index.ts +0 -111
  284. package/contracts/issuers/trades/index.ts +0 -132
  285. package/contracts/issuers/transactions/index.ts +0 -158
  286. package/contracts/issuers/user-manuals/index.ts +0 -62
  287. package/contracts/issuers/user-settings/index.ts +0 -170
  288. package/contracts/issuers/users/index.ts +0 -126
  289. package/contracts/secondaries/accounts/index.ts +0 -58
  290. package/contracts/secondaries/index.ts +0 -23
  291. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  292. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  293. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  294. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  295. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -1,314 +0,0 @@
1
- import { z } from 'zod';
2
- import { accountIdSchema } from './account.types';
3
- import { assetIdSchema } from './asset.types';
4
- import {
5
- OfferingType,
6
- CoveredPersonsStatus,
7
- CoveredPersonsRoleType,
8
- AssetType,
9
- AccountZod,
10
- DurationType,
11
- ManagedByType,
12
- SubmitIssuerOfferingError,
13
- ErrorResponseZod,
14
- numberFromStringOrNumber,
15
- } from './common.types';
16
- import { coveredPersonIdSchema } from './covered-person.types';
17
- import { issuerIdSchema, IssuerTypes } from './issuer.types';
18
- import { offeringIdSchema, offeringRevisionIdSchema } from './offering.types';
19
- import { StateCode } from './states.types';
20
- import { CountryCode } from './countries.types';
21
-
22
- export const SubmitIssuerOfferingResponse = z.object({
23
- valid: z.boolean(),
24
- errors: z.array(SubmitIssuerOfferingError),
25
- checks: z.object({
26
- issuer: ErrorResponseZod,
27
- offering: ErrorResponseZod,
28
- assets: ErrorResponseZod,
29
- }),
30
- });
31
- export type SubmitIssuerOfferingResponse = z.infer<
32
- typeof SubmitIssuerOfferingResponse
33
- >;
34
- export const OfferingsReviewZod = z.object({
35
- id: offeringIdSchema,
36
- type: z.nativeEnum(OfferingType, {
37
- message: 'Type field is required.',
38
- }),
39
- platform: z
40
- .string({ message: 'Platform field is required.' })
41
- .min(2, { message: 'Platform ID should have at least 2 characters.' })
42
- .max(50, {
43
- message: 'Platform ID can’t be longer than 50 characters.',
44
- }),
45
- enabled: z.boolean({
46
- message: 'Enabled field is required.',
47
- }),
48
- accountId: accountIdSchema,
49
- issuerId: issuerIdSchema,
50
- managedBy: z
51
- .nativeEnum(ManagedByType, {
52
- message: 'Please choose a valid type for the offering.',
53
- })
54
- .nullable(),
55
- });
56
- export const OfferingsRevisionReviewZod = z.object({
57
- id: offeringRevisionIdSchema, // Assuming this already validates the ID
58
- name: z
59
- .string({ message: 'Name field is required.' })
60
- .min(2, { message: 'Name should have at least 2 characters.' })
61
- .max(100, { message: 'Name can’t be longer than 100 characters.' }),
62
- description: z
63
- .string({ message: 'Description field is required.' })
64
- .min(1, { message: 'Description should have at least 1 character.' })
65
- .max(1000, {
66
- message: 'Description can’t be longer than 1000 characters.',
67
- })
68
- .optional()
69
- .nullable(),
70
- tid: z
71
- .string({ message: 'Please enter a tid if applicable.' })
72
- .min(2, {
73
- message: 'Tid should have at least 2 characters.',
74
- })
75
- .max(50, {
76
- message: 'Tid can’t be longer than 50 characters.',
77
- })
78
- .optional()
79
- .nullable(),
80
-
81
- raiseAmount: numberFromStringOrNumber('RaiseAmount')
82
- .pipe(
83
- z
84
- .number()
85
- .min(0, { message: 'Raise amount must be at least 0.' })
86
- .max(10000000000, {
87
- message: 'Raise amount can’t exceed 10 billion.',
88
- }),
89
- )
90
- .nullable()
91
- .optional(),
92
- targetAmount: numberFromStringOrNumber('TargetAmount').pipe(
93
- z
94
- .number()
95
- .min(0.01, { message: 'Target amount must be at least 0.01.' })
96
- .max(10000000000, {
97
- message: 'Target amount can’t exceed 10 billion.',
98
- }),
99
- ),
100
-
101
- minInvestment: numberFromStringOrNumber('MinInvestment')
102
- .pipe(
103
- z
104
- .number()
105
- .min(0, { message: 'Minimum investment must be at least 0.' })
106
- .max(10000000000, {
107
- message: 'Minimum investment can’t exceed 10 billion.',
108
- }),
109
- )
110
- .nullable()
111
- .optional(),
112
- maxInvestment: numberFromStringOrNumber('MaxInvestment')
113
- .pipe(
114
- z
115
- .number()
116
- .min(0, { message: 'Maximum investment must be at least 0.' })
117
- .max(10000000000, {
118
- message: 'Maximum investment can’t exceed 10 billion.',
119
- }),
120
- )
121
- .nullable()
122
- .optional(),
123
- contingencyAmount: numberFromStringOrNumber('ContingencyAmount')
124
- .pipe(
125
- z
126
- .number()
127
- .min(0, { message: 'Contingency amount must be at least 0.' })
128
- .max(10000000000, {
129
- message: 'Contingency amount can’t exceed 10 billion.',
130
- }),
131
- )
132
- .nullable()
133
- .optional(),
134
- startAt: z
135
- .date({ message: 'StartAt field is required.' })
136
- .nullable()
137
- .optional(),
138
- endAt: z.date({ message: 'EndAt field is required.' }).nullable().optional(),
139
- });
140
-
141
- export const IssuerReviewZod = z.object({
142
- id: issuerIdSchema,
143
- accountId: accountIdSchema,
144
- legalName: z
145
- .string({ message: 'LegalName field is required.' })
146
- .min(1, { message: 'Legal name should have at least 1 character.' })
147
- .max(100, { message: 'Legal name can’t exceed 100 characters.' }),
148
- dba: z
149
- .string({
150
- message: 'Please provide the Doing Business As (DBA) name if applicable.',
151
- })
152
- .max(100, { message: 'DBA name can’t exceed 100 characters.' })
153
- .nullable()
154
- .optional(),
155
- ein: z
156
- .string({ message: 'EIN field is required.' })
157
- .regex(/^\d{9}$/, {
158
- message: 'EIN should be exactly 9 digits long.',
159
- })
160
- .transform((val) => val.replace(/(\d{2})(\d{7})/, '$1-$2'))
161
- .nullable()
162
- .optional(),
163
- type: z.nativeEnum(IssuerTypes, {
164
- message: 'Type field is required.',
165
- invalid_type_error: 'Selected issuer type is not valid.',
166
- }),
167
- address: z
168
- .string({ message: 'Address field is required.' })
169
- .min(2, { message: 'Address should have at least 2 characters.' })
170
- .max(150, { message: 'Address can’t exceed 150 characters.' })
171
- .nullable()
172
- .optional(),
173
- address2: z
174
- .string({ message: 'Please provide address 2 if applicable.' })
175
- .nullable()
176
- .optional(),
177
- city: z
178
- .string({ message: 'City field is required.' })
179
- .min(2, { message: 'City should have at least 2 characters.' })
180
- .max(50, { message: 'City can’t exceed 50 characters.' })
181
- .nullable()
182
- .optional(),
183
- state: z
184
- .nativeEnum(StateCode, {
185
- message: 'State field is required.',
186
- })
187
- .nullable()
188
- .optional(),
189
- zip: z
190
- .string({ message: 'Zip field is required.' })
191
- .regex(/^\d{5}$/, {
192
- message: 'ZIP code must be a 5-digit number.',
193
- })
194
- .nullable()
195
- .optional(),
196
- country: z
197
- .nativeEnum(CountryCode, {
198
- message: 'Country field is required.',
199
- })
200
- .nullable()
201
- .optional(),
202
- ss4LetterFileId: z
203
- .string({
204
- message: 'Ss4LetterFileId field is required.',
205
- })
206
- .nullable()
207
- .optional(),
208
- });
209
- export const CoveredPersonReviewZod = z
210
- .object({
211
- id: coveredPersonIdSchema,
212
- firstName: z
213
- .string()
214
- .min(2, {
215
- message: 'FirstName field is required.',
216
- })
217
- .max(50, {
218
- message: 'First name can’t be longer than 50 characters.',
219
- }),
220
- lastName: z
221
- .string()
222
- .min(2, {
223
- message: 'LastName field is required.',
224
- })
225
- .max(50, { message: 'Last name can’t be longer than 50 characters.' })
226
- .nullable()
227
- .optional(),
228
- status: z.nativeEnum(CoveredPersonsStatus, {
229
- message: 'Status field is required.',
230
- }),
231
- issuerId: issuerIdSchema,
232
- email: z
233
- .string()
234
- .email({ message: 'Email field is required.' })
235
- .nullable()
236
- .optional(),
237
- role: z.nativeEnum(CoveredPersonsRoleType, {
238
- message: 'Role field is required.',
239
- }),
240
- ownership: z
241
- .number()
242
- .min(0, { message: 'Ownership percentage cannot be less than 0%.' })
243
- .max(100, { message: 'Ownership percentage cannot exceed 100%.' }),
244
- parentId: coveredPersonIdSchema.nullable().optional(),
245
- accountId: accountIdSchema,
246
- })
247
- .superRefine((data, ctx) => {
248
- if (data.role !== CoveredPersonsRoleType.ENTITY) {
249
- if (!data.email) {
250
- ctx.addIssue({
251
- path: ['email'],
252
- message:
253
- 'An email address is required when the role type is not ENTITY.',
254
- code: 'custom',
255
- });
256
- }
257
- } else {
258
- if (data.lastName) {
259
- ctx.addIssue({
260
- path: ['lastName'],
261
- message:
262
- 'Last name should not be provided when the role type is ENTITY.',
263
- code: 'custom',
264
- });
265
- }
266
- }
267
- });
268
-
269
- const BaseAssetReviewZod = z.object({
270
- id: assetIdSchema,
271
- name: z
272
- .string({ message: 'Name field is required.' })
273
- .min(2, { message: 'Name must have at least 2 characters.' })
274
- .max(50, { message: 'Name cannot exceed 50 characters.' }),
275
- type: z
276
- .nativeEnum(AssetType, { message: 'Type field is required.' })
277
- .nullable(),
278
- pricePerUnit: numberFromStringOrNumber('PricePerUnit').pipe(
279
- z
280
- .number()
281
- .min(0.01, { message: 'Price per unit must be at least 0.01.' })
282
- .max(10000000000, {
283
- message: 'Price per unit cannot exceed 10 billion.',
284
- }),
285
- ),
286
- totalUnits: numberFromStringOrNumber('TotalUnits').pipe(
287
- z
288
- .number()
289
- .min(0.01, { message: 'Total units must be at least 0.01.' })
290
- .max(10000000000, {
291
- message: 'Total units cannot exceed 10 billion.',
292
- }),
293
- ),
294
- accountId: accountIdSchema,
295
- account: AccountZod.optional().nullable(),
296
- offeringId: offeringIdSchema,
297
- });
298
- export const StockAssetReviewZod = BaseAssetReviewZod.extend({});
299
-
300
- export const BondAssetReviewZod = BaseAssetReviewZod.extend({
301
- yield: numberFromStringOrNumber('Yield').pipe(
302
- z
303
- .number()
304
- .min(0.01, { message: 'Yield must be at least 0.01.' })
305
- .max(10000000000, { message: 'Yield cannot exceed 10 billion.' }),
306
- ),
307
- duration: z
308
- .number({ message: 'Duration field is required.' })
309
- .min(1, { message: 'Duration must be at least 1.' })
310
- .max(1000, { message: 'Duration cannot exceed 1000.' }),
311
- durationType: z.nativeEnum(DurationType, {
312
- message: 'DurationType field is required.',
313
- }),
314
- });