@open-captable-protocol/canton 0.2.190 → 0.2.191

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 (31) hide show
  1. package/dist/functions/OpenCapTable/capTable/ocfToDaml.d.ts.map +1 -1
  2. package/dist/functions/OpenCapTable/capTable/ocfToDaml.js +3 -6
  3. package/dist/functions/OpenCapTable/capTable/ocfToDaml.js.map +1 -1
  4. package/dist/functions/OpenCapTable/document/createDocument.d.ts.map +1 -1
  5. package/dist/functions/OpenCapTable/document/createDocument.js +3 -15
  6. package/dist/functions/OpenCapTable/document/createDocument.js.map +1 -1
  7. package/dist/functions/OpenCapTable/issuer/createIssuer.d.ts.map +1 -1
  8. package/dist/functions/OpenCapTable/issuer/createIssuer.js +3 -7
  9. package/dist/functions/OpenCapTable/issuer/createIssuer.js.map +1 -1
  10. package/dist/functions/OpenCapTable/stakeholder/stakeholderDataToDaml.d.ts.map +1 -1
  11. package/dist/functions/OpenCapTable/stakeholder/stakeholderDataToDaml.js +3 -7
  12. package/dist/functions/OpenCapTable/stakeholder/stakeholderDataToDaml.js.map +1 -1
  13. package/dist/functions/OpenCapTable/stockClass/stockClassDataToDaml.d.ts.map +1 -1
  14. package/dist/functions/OpenCapTable/stockClass/stockClassDataToDaml.js +3 -7
  15. package/dist/functions/OpenCapTable/stockClass/stockClassDataToDaml.js.map +1 -1
  16. package/dist/functions/OpenCapTable/stockIssuance/createStockIssuance.d.ts.map +1 -1
  17. package/dist/functions/OpenCapTable/stockIssuance/createStockIssuance.js +3 -30
  18. package/dist/functions/OpenCapTable/stockIssuance/createStockIssuance.js.map +1 -1
  19. package/dist/utils/entityValidators.d.ts +144 -0
  20. package/dist/utils/entityValidators.d.ts.map +1 -0
  21. package/dist/utils/entityValidators.js +581 -0
  22. package/dist/utils/entityValidators.js.map +1 -0
  23. package/dist/utils/index.d.ts +1 -0
  24. package/dist/utils/index.d.ts.map +1 -1
  25. package/dist/utils/index.js +1 -0
  26. package/dist/utils/index.js.map +1 -1
  27. package/dist/utils/validation.d.ts +19 -25
  28. package/dist/utils/validation.d.ts.map +1 -1
  29. package/dist/utils/validation.js +125 -50
  30. package/dist/utils/validation.js.map +1 -1
  31. package/package.json +1 -1
@@ -0,0 +1,581 @@
1
+ "use strict";
2
+ /**
3
+ * Entity-specific validators for OCF types.
4
+ *
5
+ * These validators provide comprehensive input validation for common OCF entity types,
6
+ * ensuring data integrity before sending to DAML contracts.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { validateIssuerData, validateStakeholderData } from './entityValidators';
11
+ *
12
+ * // Validates and throws OcpValidationError if invalid
13
+ * validateIssuerData(issuerData, 'issuer');
14
+ * validateStakeholderData(stakeholderData, 'stakeholder');
15
+ * ```
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.validateEmail = validateEmail;
19
+ exports.validateOptionalEmail = validateOptionalEmail;
20
+ exports.validatePhone = validatePhone;
21
+ exports.validateOptionalPhone = validateOptionalPhone;
22
+ exports.validateAddress = validateAddress;
23
+ exports.validateOptionalAddress = validateOptionalAddress;
24
+ exports.validateTaxId = validateTaxId;
25
+ exports.validateMonetaryObject = validateMonetaryObject;
26
+ exports.validateOptionalMonetaryObject = validateOptionalMonetaryObject;
27
+ exports.validateName = validateName;
28
+ exports.validateContactInfo = validateContactInfo;
29
+ exports.validateContactInfoWithoutName = validateContactInfoWithoutName;
30
+ exports.validateIssuerData = validateIssuerData;
31
+ exports.validateStakeholderData = validateStakeholderData;
32
+ exports.validateStockClassData = validateStockClassData;
33
+ exports.validateStockIssuanceData = validateStockIssuanceData;
34
+ exports.validateValuationData = validateValuationData;
35
+ exports.validateDocumentData = validateDocumentData;
36
+ exports.validateTransactionBase = validateTransactionBase;
37
+ exports.validateResultingSecurityIds = validateResultingSecurityIds;
38
+ const errors_1 = require("../errors");
39
+ const validation_1 = require("./validation");
40
+ // ===== Enum Constants =====
41
+ const EMAIL_TYPES = ['PERSONAL', 'BUSINESS', 'OTHER'];
42
+ const PHONE_TYPES = ['HOME', 'MOBILE', 'BUSINESS', 'OTHER'];
43
+ const ADDRESS_TYPES = ['LEGAL', 'CONTACT', 'OTHER'];
44
+ const STAKEHOLDER_TYPES = ['INDIVIDUAL', 'INSTITUTION'];
45
+ const STOCK_CLASS_TYPES = ['PREFERRED', 'COMMON'];
46
+ const STOCK_ISSUANCE_TYPES = ['RSA', 'FOUNDERS_STOCK'];
47
+ const VALUATION_TYPES = ['409A'];
48
+ const STAKEHOLDER_STATUSES = [
49
+ 'ACTIVE',
50
+ 'LEAVE_OF_ABSENCE',
51
+ 'TERMINATION_VOLUNTARY_OTHER',
52
+ 'TERMINATION_VOLUNTARY_GOOD_CAUSE',
53
+ 'TERMINATION_VOLUNTARY_RETIREMENT',
54
+ 'TERMINATION_INVOLUNTARY_OTHER',
55
+ 'TERMINATION_INVOLUNTARY_DEATH',
56
+ 'TERMINATION_INVOLUNTARY_DISABILITY',
57
+ 'TERMINATION_INVOLUNTARY_WITH_CAUSE',
58
+ ];
59
+ const STAKEHOLDER_RELATIONSHIPS = [
60
+ 'EMPLOYEE',
61
+ 'ADVISOR',
62
+ 'INVESTOR',
63
+ 'FOUNDER',
64
+ 'BOARD_MEMBER',
65
+ 'OFFICER',
66
+ 'OTHER',
67
+ ];
68
+ // ===== Helper Validators =====
69
+ /**
70
+ * Validate an Email object.
71
+ */
72
+ function validateEmail(value, fieldPath) {
73
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
74
+ const email = value;
75
+ (0, validation_1.validateEnum)(email.email_type, `${fieldPath}.email_type`, EMAIL_TYPES);
76
+ (0, validation_1.validateRequiredString)(email.email_address, `${fieldPath}.email_address`);
77
+ }
78
+ /**
79
+ * Validate an optional Email object.
80
+ */
81
+ function validateOptionalEmail(value, fieldPath) {
82
+ if (value === undefined || value === null) {
83
+ return null;
84
+ }
85
+ validateEmail(value, fieldPath);
86
+ return value;
87
+ }
88
+ /**
89
+ * Validate a Phone object.
90
+ */
91
+ function validatePhone(value, fieldPath) {
92
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
93
+ const phone = value;
94
+ (0, validation_1.validateEnum)(phone.phone_type, `${fieldPath}.phone_type`, PHONE_TYPES);
95
+ (0, validation_1.validateRequiredString)(phone.phone_number, `${fieldPath}.phone_number`);
96
+ }
97
+ /**
98
+ * Validate an optional Phone object.
99
+ */
100
+ function validateOptionalPhone(value, fieldPath) {
101
+ if (value === undefined || value === null) {
102
+ return null;
103
+ }
104
+ validatePhone(value, fieldPath);
105
+ return value;
106
+ }
107
+ /**
108
+ * Validate an Address object.
109
+ */
110
+ function validateAddress(value, fieldPath) {
111
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
112
+ const address = value;
113
+ (0, validation_1.validateEnum)(address.address_type, `${fieldPath}.address_type`, ADDRESS_TYPES);
114
+ (0, validation_1.validateRequiredString)(address.country, `${fieldPath}.country`);
115
+ // Optional fields
116
+ (0, validation_1.validateOptionalString)(address.street_suite, `${fieldPath}.street_suite`);
117
+ (0, validation_1.validateOptionalString)(address.city, `${fieldPath}.city`);
118
+ (0, validation_1.validateOptionalString)(address.country_subdivision, `${fieldPath}.country_subdivision`);
119
+ (0, validation_1.validateOptionalString)(address.postal_code, `${fieldPath}.postal_code`);
120
+ }
121
+ /**
122
+ * Validate an optional Address object.
123
+ */
124
+ function validateOptionalAddress(value, fieldPath) {
125
+ if (value === undefined || value === null) {
126
+ return null;
127
+ }
128
+ validateAddress(value, fieldPath);
129
+ return value;
130
+ }
131
+ /**
132
+ * Validate a TaxId object.
133
+ */
134
+ function validateTaxId(value, fieldPath) {
135
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
136
+ const taxId = value;
137
+ (0, validation_1.validateRequiredString)(taxId.country, `${fieldPath}.country`);
138
+ (0, validation_1.validateRequiredString)(taxId.tax_id, `${fieldPath}.tax_id`);
139
+ }
140
+ /**
141
+ * Validate a Monetary object (entity-specific version).
142
+ * Delegates to validateRequiredMonetary from validation.ts.
143
+ */
144
+ function validateMonetaryObject(value, fieldPath) {
145
+ (0, validation_1.validateRequiredMonetary)(value, fieldPath);
146
+ }
147
+ /**
148
+ * Validate an optional Monetary object.
149
+ */
150
+ function validateOptionalMonetaryObject(value, fieldPath) {
151
+ if (value === undefined || value === null) {
152
+ return null;
153
+ }
154
+ validateMonetaryObject(value, fieldPath);
155
+ return value;
156
+ }
157
+ /**
158
+ * Validate a Name object.
159
+ */
160
+ function validateName(value, fieldPath) {
161
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
162
+ const name = value;
163
+ (0, validation_1.validateRequiredString)(name.legal_name, `${fieldPath}.legal_name`);
164
+ (0, validation_1.validateOptionalString)(name.first_name, `${fieldPath}.first_name`);
165
+ (0, validation_1.validateOptionalString)(name.last_name, `${fieldPath}.last_name`);
166
+ }
167
+ /**
168
+ * Validate the phone and email arrays in a contact info object.
169
+ * This is a helper function used by both validateContactInfo and validateContactInfoWithoutName.
170
+ */
171
+ function validateContactArrays(contact, fieldPath) {
172
+ // Validate optional phone_numbers array
173
+ if (contact.phone_numbers !== undefined && contact.phone_numbers !== null) {
174
+ if (!Array.isArray(contact.phone_numbers)) {
175
+ throw new errors_1.OcpValidationError(`${fieldPath}.phone_numbers`, 'Must be an array if provided', {
176
+ expectedType: 'array',
177
+ receivedValue: contact.phone_numbers,
178
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
179
+ });
180
+ }
181
+ for (let i = 0; i < contact.phone_numbers.length; i++) {
182
+ validatePhone(contact.phone_numbers[i], `${fieldPath}.phone_numbers[${i}]`);
183
+ }
184
+ }
185
+ // Validate optional emails array
186
+ if (contact.emails !== undefined && contact.emails !== null) {
187
+ if (!Array.isArray(contact.emails)) {
188
+ throw new errors_1.OcpValidationError(`${fieldPath}.emails`, 'Must be an array if provided', {
189
+ expectedType: 'array',
190
+ receivedValue: contact.emails,
191
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
192
+ });
193
+ }
194
+ for (let i = 0; i < contact.emails.length; i++) {
195
+ validateEmail(contact.emails[i], `${fieldPath}.emails[${i}]`);
196
+ }
197
+ }
198
+ }
199
+ /**
200
+ * Validate a ContactInfo object.
201
+ */
202
+ function validateContactInfo(value, fieldPath) {
203
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
204
+ const contact = value;
205
+ validateName(contact.name, `${fieldPath}.name`);
206
+ validateContactArrays(contact, fieldPath);
207
+ }
208
+ /**
209
+ * Validate a ContactInfoWithoutName object.
210
+ */
211
+ function validateContactInfoWithoutName(value, fieldPath) {
212
+ (0, validation_1.validateRequiredObject)(value, fieldPath);
213
+ const contact = value;
214
+ validateContactArrays(contact, fieldPath);
215
+ }
216
+ // ===== Entity Validators =====
217
+ /**
218
+ * Validate OcfIssuer data.
219
+ *
220
+ * Validates all required fields and structure of an issuer object.
221
+ * Throws OcpValidationError with detailed field path on validation failure.
222
+ *
223
+ * @param data - The issuer data to validate
224
+ * @param fieldPath - Base path for error messages (e.g., 'issuer')
225
+ * @throws {OcpValidationError} if validation fails
226
+ */
227
+ function validateIssuerData(data, fieldPath) {
228
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
229
+ const value = data;
230
+ // Required fields
231
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
232
+ (0, validation_1.validateRequiredString)(value.legal_name, `${fieldPath}.legal_name`);
233
+ (0, validation_1.validateRequiredDate)(value.formation_date, `${fieldPath}.formation_date`);
234
+ (0, validation_1.validateRequiredString)(value.country_of_formation, `${fieldPath}.country_of_formation`);
235
+ // Tax IDs - required array but can be empty
236
+ if (!Array.isArray(value.tax_ids)) {
237
+ throw new errors_1.OcpValidationError(`${fieldPath}.tax_ids`, 'Must be an array', {
238
+ expectedType: 'array',
239
+ receivedValue: value.tax_ids,
240
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
241
+ });
242
+ }
243
+ for (let i = 0; i < value.tax_ids.length; i++) {
244
+ validateTaxId(value.tax_ids[i], `${fieldPath}.tax_ids[${i}]`);
245
+ }
246
+ // Optional fields
247
+ (0, validation_1.validateOptionalString)(value.dba, `${fieldPath}.dba`);
248
+ (0, validation_1.validateOptionalString)(value.country_subdivision_of_formation, `${fieldPath}.country_subdivision_of_formation`);
249
+ (0, validation_1.validateOptionalString)(value.country_subdivision_name_of_formation, `${fieldPath}.country_subdivision_name_of_formation`);
250
+ // Optional complex fields
251
+ if (value.email !== undefined && value.email !== null) {
252
+ validateEmail(value.email, `${fieldPath}.email`);
253
+ }
254
+ if (value.phone !== undefined && value.phone !== null) {
255
+ validatePhone(value.phone, `${fieldPath}.phone`);
256
+ }
257
+ if (value.address !== undefined && value.address !== null) {
258
+ validateAddress(value.address, `${fieldPath}.address`);
259
+ }
260
+ // initial_shares_authorized can be number, string, or special enum values
261
+ if (value.initial_shares_authorized !== undefined && value.initial_shares_authorized !== null) {
262
+ const shares = value.initial_shares_authorized;
263
+ if (typeof shares !== 'number' && typeof shares !== 'string') {
264
+ throw new errors_1.OcpValidationError(`${fieldPath}.initial_shares_authorized`, 'Must be a number or string', {
265
+ expectedType: 'number, numeric string, or "UNLIMITED"/"NOT_APPLICABLE"',
266
+ receivedValue: shares,
267
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
268
+ });
269
+ }
270
+ }
271
+ // Optional comments array
272
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
273
+ }
274
+ /**
275
+ * Validate OcfStakeholder data.
276
+ *
277
+ * Validates all required fields and structure of a stakeholder object.
278
+ * Throws OcpValidationError with detailed field path on validation failure.
279
+ *
280
+ * @param data - The stakeholder data to validate
281
+ * @param fieldPath - Base path for error messages (e.g., 'stakeholder')
282
+ * @throws {OcpValidationError} if validation fails
283
+ */
284
+ function validateStakeholderData(data, fieldPath) {
285
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
286
+ const value = data;
287
+ // Required fields
288
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
289
+ validateName(value.name, `${fieldPath}.name`);
290
+ (0, validation_1.validateEnum)(value.stakeholder_type, `${fieldPath}.stakeholder_type`, STAKEHOLDER_TYPES);
291
+ // Optional fields
292
+ (0, validation_1.validateOptionalString)(value.issuer_assigned_id, `${fieldPath}.issuer_assigned_id`);
293
+ // Optional current_relationships array
294
+ if (value.current_relationships !== undefined && value.current_relationships !== null) {
295
+ if (!Array.isArray(value.current_relationships)) {
296
+ throw new errors_1.OcpValidationError(`${fieldPath}.current_relationships`, 'Must be an array if provided', {
297
+ expectedType: 'array',
298
+ receivedValue: value.current_relationships,
299
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
300
+ });
301
+ }
302
+ for (let i = 0; i < value.current_relationships.length; i++) {
303
+ (0, validation_1.validateEnum)(value.current_relationships[i], `${fieldPath}.current_relationships[${i}]`, STAKEHOLDER_RELATIONSHIPS);
304
+ }
305
+ }
306
+ // Optional current_status
307
+ (0, validation_1.validateOptionalEnum)(value.current_status, `${fieldPath}.current_status`, STAKEHOLDER_STATUSES);
308
+ // Optional primary_contact
309
+ if (value.primary_contact !== undefined && value.primary_contact !== null) {
310
+ validateContactInfo(value.primary_contact, `${fieldPath}.primary_contact`);
311
+ }
312
+ // Optional contact_info
313
+ if (value.contact_info !== undefined && value.contact_info !== null) {
314
+ validateContactInfoWithoutName(value.contact_info, `${fieldPath}.contact_info`);
315
+ }
316
+ // Optional addresses array
317
+ if (value.addresses !== undefined && value.addresses !== null) {
318
+ if (!Array.isArray(value.addresses)) {
319
+ throw new errors_1.OcpValidationError(`${fieldPath}.addresses`, 'Must be an array if provided', {
320
+ expectedType: 'array',
321
+ receivedValue: value.addresses,
322
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
323
+ });
324
+ }
325
+ for (let i = 0; i < value.addresses.length; i++) {
326
+ validateAddress(value.addresses[i], `${fieldPath}.addresses[${i}]`);
327
+ }
328
+ }
329
+ // Optional tax_ids array
330
+ if (value.tax_ids !== undefined && value.tax_ids !== null) {
331
+ if (!Array.isArray(value.tax_ids)) {
332
+ throw new errors_1.OcpValidationError(`${fieldPath}.tax_ids`, 'Must be an array if provided', {
333
+ expectedType: 'array',
334
+ receivedValue: value.tax_ids,
335
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
336
+ });
337
+ }
338
+ for (let i = 0; i < value.tax_ids.length; i++) {
339
+ validateTaxId(value.tax_ids[i], `${fieldPath}.tax_ids[${i}]`);
340
+ }
341
+ }
342
+ // Optional comments array
343
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
344
+ }
345
+ /**
346
+ * Validate OcfStockClass data.
347
+ *
348
+ * Validates all required fields and structure of a stock class object.
349
+ * Throws OcpValidationError with detailed field path on validation failure.
350
+ *
351
+ * @param data - The stock class data to validate
352
+ * @param fieldPath - Base path for error messages (e.g., 'stockClass')
353
+ * @throws {OcpValidationError} if validation fails
354
+ */
355
+ function validateStockClassData(data, fieldPath) {
356
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
357
+ const value = data;
358
+ // Required fields
359
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
360
+ (0, validation_1.validateRequiredString)(value.name, `${fieldPath}.name`);
361
+ (0, validation_1.validateEnum)(value.class_type, `${fieldPath}.class_type`, STOCK_CLASS_TYPES);
362
+ (0, validation_1.validateRequiredString)(value.default_id_prefix, `${fieldPath}.default_id_prefix`);
363
+ (0, validation_1.validateRequiredNumeric)(value.initial_shares_authorized, `${fieldPath}.initial_shares_authorized`);
364
+ (0, validation_1.validateRequiredNumeric)(value.seniority, `${fieldPath}.seniority`);
365
+ (0, validation_1.validateRequiredNumeric)(value.votes_per_share, `${fieldPath}.votes_per_share`);
366
+ // Optional fields
367
+ (0, validation_1.validateOptionalDate)(value.board_approval_date, `${fieldPath}.board_approval_date`);
368
+ (0, validation_1.validateOptionalDate)(value.stockholder_approval_date, `${fieldPath}.stockholder_approval_date`);
369
+ (0, validation_1.validateOptionalNumeric)(value.liquidation_preference_multiple, `${fieldPath}.liquidation_preference_multiple`);
370
+ (0, validation_1.validateOptionalNumeric)(value.participation_cap_multiple, `${fieldPath}.participation_cap_multiple`);
371
+ // Optional monetary fields
372
+ if (value.par_value !== undefined && value.par_value !== null) {
373
+ validateMonetaryObject(value.par_value, `${fieldPath}.par_value`);
374
+ }
375
+ if (value.price_per_share !== undefined && value.price_per_share !== null) {
376
+ validateMonetaryObject(value.price_per_share, `${fieldPath}.price_per_share`);
377
+ }
378
+ // Optional conversion_rights array - complex validation
379
+ if (value.conversion_rights !== undefined && value.conversion_rights !== null) {
380
+ if (!Array.isArray(value.conversion_rights)) {
381
+ throw new errors_1.OcpValidationError(`${fieldPath}.conversion_rights`, 'Must be an array if provided', {
382
+ expectedType: 'array',
383
+ receivedValue: value.conversion_rights,
384
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
385
+ });
386
+ }
387
+ // Each conversion right has complex structure - basic validation
388
+ for (let i = 0; i < value.conversion_rights.length; i++) {
389
+ const right = value.conversion_rights[i];
390
+ (0, validation_1.validateRequiredObject)(right, `${fieldPath}.conversion_rights[${i}]`);
391
+ (0, validation_1.validateRequiredString)(right.converts_to_stock_class_id, `${fieldPath}.conversion_rights[${i}].converts_to_stock_class_id`);
392
+ }
393
+ }
394
+ // Optional comments array
395
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
396
+ }
397
+ /**
398
+ * Validate OcfStockIssuance data.
399
+ *
400
+ * Validates all required fields and structure of a stock issuance object.
401
+ * Throws OcpValidationError with detailed field path on validation failure.
402
+ *
403
+ * @param data - The stock issuance data to validate
404
+ * @param fieldPath - Base path for error messages (e.g., 'stockIssuance')
405
+ * @throws {OcpValidationError} if validation fails
406
+ */
407
+ function validateStockIssuanceData(data, fieldPath) {
408
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
409
+ const value = data;
410
+ // Required fields
411
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
412
+ (0, validation_1.validateRequiredDate)(value.date, `${fieldPath}.date`);
413
+ (0, validation_1.validateRequiredString)(value.security_id, `${fieldPath}.security_id`);
414
+ (0, validation_1.validateRequiredString)(value.custom_id, `${fieldPath}.custom_id`);
415
+ (0, validation_1.validateRequiredString)(value.stakeholder_id, `${fieldPath}.stakeholder_id`);
416
+ (0, validation_1.validateRequiredString)(value.stock_class_id, `${fieldPath}.stock_class_id`);
417
+ validateMonetaryObject(value.share_price, `${fieldPath}.share_price`);
418
+ (0, validation_1.validateRequiredNumeric)(value.quantity, `${fieldPath}.quantity`);
419
+ // Optional fields
420
+ (0, validation_1.validateOptionalDate)(value.board_approval_date, `${fieldPath}.board_approval_date`);
421
+ (0, validation_1.validateOptionalDate)(value.stockholder_approval_date, `${fieldPath}.stockholder_approval_date`);
422
+ (0, validation_1.validateOptionalString)(value.consideration_text, `${fieldPath}.consideration_text`);
423
+ (0, validation_1.validateOptionalString)(value.stock_plan_id, `${fieldPath}.stock_plan_id`);
424
+ (0, validation_1.validateOptionalString)(value.vesting_terms_id, `${fieldPath}.vesting_terms_id`);
425
+ (0, validation_1.validateOptionalEnum)(value.issuance_type, `${fieldPath}.issuance_type`, STOCK_ISSUANCE_TYPES);
426
+ // Optional security_law_exemptions array
427
+ if (value.security_law_exemptions !== undefined && value.security_law_exemptions !== null) {
428
+ if (!Array.isArray(value.security_law_exemptions)) {
429
+ throw new errors_1.OcpValidationError(`${fieldPath}.security_law_exemptions`, 'Must be an array if provided', {
430
+ expectedType: 'array',
431
+ receivedValue: value.security_law_exemptions,
432
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
433
+ });
434
+ }
435
+ for (let i = 0; i < value.security_law_exemptions.length; i++) {
436
+ const exemption = value.security_law_exemptions[i];
437
+ (0, validation_1.validateRequiredObject)(exemption, `${fieldPath}.security_law_exemptions[${i}]`);
438
+ (0, validation_1.validateRequiredString)(exemption.description, `${fieldPath}.security_law_exemptions[${i}].description`);
439
+ (0, validation_1.validateRequiredString)(exemption.jurisdiction, `${fieldPath}.security_law_exemptions[${i}].jurisdiction`);
440
+ }
441
+ }
442
+ // Optional share_numbers_issued array
443
+ if (value.share_numbers_issued !== undefined && value.share_numbers_issued !== null) {
444
+ if (!Array.isArray(value.share_numbers_issued)) {
445
+ throw new errors_1.OcpValidationError(`${fieldPath}.share_numbers_issued`, 'Must be an array if provided', {
446
+ expectedType: 'array',
447
+ receivedValue: value.share_numbers_issued,
448
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
449
+ });
450
+ }
451
+ for (let i = 0; i < value.share_numbers_issued.length; i++) {
452
+ const range = value.share_numbers_issued[i];
453
+ (0, validation_1.validateRequiredObject)(range, `${fieldPath}.share_numbers_issued[${i}]`);
454
+ (0, validation_1.validateRequiredNumeric)(range.starting_share_number, `${fieldPath}.share_numbers_issued[${i}].starting_share_number`);
455
+ (0, validation_1.validateRequiredNumeric)(range.ending_share_number, `${fieldPath}.share_numbers_issued[${i}].ending_share_number`);
456
+ }
457
+ }
458
+ // Optional vestings array
459
+ if (value.vestings !== undefined && value.vestings !== null) {
460
+ if (!Array.isArray(value.vestings)) {
461
+ throw new errors_1.OcpValidationError(`${fieldPath}.vestings`, 'Must be an array if provided', {
462
+ expectedType: 'array',
463
+ receivedValue: value.vestings,
464
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
465
+ });
466
+ }
467
+ for (let i = 0; i < value.vestings.length; i++) {
468
+ const vesting = value.vestings[i];
469
+ (0, validation_1.validateRequiredObject)(vesting, `${fieldPath}.vestings[${i}]`);
470
+ (0, validation_1.validateRequiredDate)(vesting.date, `${fieldPath}.vestings[${i}].date`);
471
+ (0, validation_1.validateRequiredNumeric)(vesting.amount, `${fieldPath}.vestings[${i}].amount`);
472
+ }
473
+ }
474
+ // Optional cost_basis
475
+ if (value.cost_basis !== undefined && value.cost_basis !== null) {
476
+ validateMonetaryObject(value.cost_basis, `${fieldPath}.cost_basis`);
477
+ }
478
+ // Optional stock_legend_ids array
479
+ (0, validation_1.validateOptionalArray)(value.stock_legend_ids, `${fieldPath}.stock_legend_ids`);
480
+ // Optional comments array
481
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
482
+ }
483
+ /**
484
+ * Validate OcfValuation data.
485
+ *
486
+ * Validates all required fields and structure of a valuation object.
487
+ * Throws OcpValidationError with detailed field path on validation failure.
488
+ *
489
+ * @param data - The valuation data to validate
490
+ * @param fieldPath - Base path for error messages (e.g., 'valuation')
491
+ * @throws {OcpValidationError} if validation fails
492
+ */
493
+ function validateValuationData(data, fieldPath) {
494
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
495
+ const value = data;
496
+ // Required fields
497
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
498
+ (0, validation_1.validateRequiredString)(value.stock_class_id, `${fieldPath}.stock_class_id`);
499
+ (0, validation_1.validateRequiredDate)(value.effective_date, `${fieldPath}.effective_date`);
500
+ (0, validation_1.validateEnum)(value.valuation_type, `${fieldPath}.valuation_type`, VALUATION_TYPES);
501
+ validateMonetaryObject(value.price_per_share, `${fieldPath}.price_per_share`);
502
+ // Optional fields
503
+ (0, validation_1.validateOptionalString)(value.provider, `${fieldPath}.provider`);
504
+ (0, validation_1.validateOptionalDate)(value.board_approval_date, `${fieldPath}.board_approval_date`);
505
+ (0, validation_1.validateOptionalDate)(value.stockholder_approval_date, `${fieldPath}.stockholder_approval_date`);
506
+ // Optional comments array
507
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
508
+ }
509
+ /**
510
+ * Validate OcfDocument data.
511
+ *
512
+ * Validates all required fields and structure of a document object.
513
+ * Throws OcpValidationError with detailed field path on validation failure.
514
+ *
515
+ * @param data - The document data to validate
516
+ * @param fieldPath - Base path for error messages (e.g., 'document')
517
+ * @throws {OcpValidationError} if validation fails
518
+ */
519
+ function validateDocumentData(data, fieldPath) {
520
+ (0, validation_1.validateRequiredObject)(data, fieldPath);
521
+ const value = data;
522
+ // Required fields
523
+ (0, validation_1.validateRequiredString)(value.id, `${fieldPath}.id`);
524
+ (0, validation_1.validateRequiredString)(value.md5, `${fieldPath}.md5`);
525
+ // Must have either path or uri
526
+ const hasPath = value.path !== undefined && value.path !== null && value.path !== '';
527
+ const hasUri = value.uri !== undefined && value.uri !== null && value.uri !== '';
528
+ if (!hasPath && !hasUri) {
529
+ throw new errors_1.OcpValidationError(`${fieldPath}`, 'Document must have either path or uri', {
530
+ code: errors_1.OcpErrorCodes.REQUIRED_FIELD_MISSING,
531
+ });
532
+ }
533
+ // Optional fields
534
+ (0, validation_1.validateOptionalString)(value.path, `${fieldPath}.path`);
535
+ (0, validation_1.validateOptionalString)(value.uri, `${fieldPath}.uri`);
536
+ // Optional related_objects array
537
+ if (value.related_objects !== undefined && value.related_objects !== null) {
538
+ if (!Array.isArray(value.related_objects)) {
539
+ throw new errors_1.OcpValidationError(`${fieldPath}.related_objects`, 'Must be an array if provided', {
540
+ expectedType: 'array',
541
+ receivedValue: value.related_objects,
542
+ code: errors_1.OcpErrorCodes.INVALID_TYPE,
543
+ });
544
+ }
545
+ for (let i = 0; i < value.related_objects.length; i++) {
546
+ const ref = value.related_objects[i];
547
+ (0, validation_1.validateRequiredObject)(ref, `${fieldPath}.related_objects[${i}]`);
548
+ (0, validation_1.validateRequiredString)(ref.object_type, `${fieldPath}.related_objects[${i}].object_type`);
549
+ (0, validation_1.validateRequiredString)(ref.object_id, `${fieldPath}.related_objects[${i}].object_id`);
550
+ }
551
+ }
552
+ // Optional comments array
553
+ (0, validation_1.validateOptionalArray)(value.comments, `${fieldPath}.comments`);
554
+ }
555
+ // ===== Transaction Validators =====
556
+ /**
557
+ * Validate common transaction fields.
558
+ * This is a helper function for transaction-specific validators.
559
+ */
560
+ function validateTransactionBase(value, path, options = {}) {
561
+ (0, validation_1.validateRequiredString)(value.id, `${path}.id`);
562
+ (0, validation_1.validateRequiredDate)(value.date, `${path}.date`);
563
+ if (options.requireSecurityId !== false) {
564
+ (0, validation_1.validateRequiredString)(value.security_id, `${path}.security_id`);
565
+ }
566
+ if (options.requireQuantity) {
567
+ (0, validation_1.validateRequiredNumeric)(value.quantity, `${path}.quantity`);
568
+ }
569
+ (0, validation_1.validateOptionalArray)(value.comments, `${path}.comments`);
570
+ }
571
+ /**
572
+ * Validate resulting_security_ids array (must be non-empty for certain transactions).
573
+ */
574
+ function validateResultingSecurityIds(value, fieldPath) {
575
+ (0, validation_1.validateRequiredArray)(value, fieldPath);
576
+ const ids = value;
577
+ for (let i = 0; i < ids.length; i++) {
578
+ (0, validation_1.validateRequiredString)(ids[i], `${fieldPath}[${i}]`);
579
+ }
580
+ }
581
+ //# sourceMappingURL=entityValidators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityValidators.js","sourceRoot":"","sources":["../../src/utils/entityValidators.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './deprecatedFieldNormalization';
2
+ export * from './entityValidators';
2
3
  export * from './enumConversions';
3
4
  export * from './ocfComparison';
4
5
  export * from './ocfHelpers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./deprecatedFieldNormalization"), exports);
18
+ __exportStar(require("./entityValidators"), exports);
18
19
  __exportStar(require("./enumConversions"), exports);
19
20
  __exportStar(require("./ocfComparison"), exports);
20
21
  __exportStar(require("./ocfHelpers"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,oDAAkC;AAClC,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,wDAAsC;AACtC,uDAAqC;AACrC,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,qDAAmC;AACnC,oDAAkC;AAClC,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,wDAAsC;AACtC,uDAAqC;AACrC,oDAAkC;AAClC,+CAA6B;AAC7B,+CAA6B"}