@stndrds/schema 1.0.0-alpha.264 → 1.0.0-alpha.265

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 (59) hide show
  1. package/dist/{attributes-DUuaECJI.d.ts → attributes-_b3Db8vT.d.ts} +1 -1
  2. package/dist/{attributes-DCgZhISp.d.mts → attributes-lBLiOIY3.d.mts} +1 -1
  3. package/dist/chunk-NGGU6BSN.mjs +216 -0
  4. package/dist/chunk-NI3HCSYH.js +229 -0
  5. package/dist/{chunk-54WDPQ6R.mjs → chunk-QIWADKYA.mjs} +12 -216
  6. package/dist/{chunk-TS3PJOMZ.js → chunk-ZBQEMIAV.js} +11 -227
  7. package/dist/exceptions.d.mts +458 -0
  8. package/dist/exceptions.d.ts +458 -0
  9. package/dist/exceptions.js +154 -0
  10. package/dist/exceptions.mjs +1 -0
  11. package/dist/{helpers-B4qBjTd0.d.ts → helpers-eyrnPJEF.d.ts} +4 -39
  12. package/dist/{helpers-B_NlMAm2.d.mts → helpers-uKLet0kF.d.mts} +4 -39
  13. package/dist/index.d.mts +111 -450
  14. package/dist/index.d.ts +111 -450
  15. package/dist/index.js +127 -111
  16. package/dist/index.mjs +24 -7
  17. package/dist/migrations-BXd2ZGfM.d.mts +39 -0
  18. package/dist/migrations-DcuJZ8qO.d.ts +39 -0
  19. package/dist/{types-15lGDPlN.d.mts → types-DNz3ITS-.d.mts} +1 -1
  20. package/dist/{types-CqZZxm_V.d.ts → types-DqLi1tx1.d.ts} +1 -1
  21. package/dist/validation/all.d.mts +4 -3
  22. package/dist/validation/all.d.ts +4 -3
  23. package/dist/validation/all.js +10 -9
  24. package/dist/validation/all.mjs +4 -3
  25. package/dist/validation/complex/currency.d.mts +2 -2
  26. package/dist/validation/complex/currency.d.ts +2 -2
  27. package/dist/validation/complex/location.d.mts +2 -2
  28. package/dist/validation/complex/location.d.ts +2 -2
  29. package/dist/validation/complex/phone.d.mts +2 -2
  30. package/dist/validation/complex/phone.d.ts +2 -2
  31. package/dist/validation/complex/relation.d.mts +2 -2
  32. package/dist/validation/complex/relation.d.ts +2 -2
  33. package/dist/validation/complex/richtext.d.mts +2 -2
  34. package/dist/validation/complex/richtext.d.ts +2 -2
  35. package/dist/validation/complex/select.d.mts +2 -2
  36. package/dist/validation/complex/select.d.ts +2 -2
  37. package/dist/validation/complex/user.d.mts +2 -2
  38. package/dist/validation/complex/user.d.ts +2 -2
  39. package/dist/validation/computed/formula.d.mts +2 -2
  40. package/dist/validation/computed/formula.d.ts +2 -2
  41. package/dist/validation/computed/rollup.d.mts +2 -2
  42. package/dist/validation/computed/rollup.d.ts +2 -2
  43. package/dist/validation/config/index.d.mts +1 -1
  44. package/dist/validation/config/index.d.ts +1 -1
  45. package/dist/validation/core/index.d.mts +3 -3
  46. package/dist/validation/core/index.d.ts +3 -3
  47. package/dist/validation/object/index.d.mts +5 -4
  48. package/dist/validation/object/index.d.ts +5 -4
  49. package/dist/validation/object/index.js +16 -15
  50. package/dist/validation/object/index.mjs +4 -3
  51. package/dist/validation/primitives/checkbox.d.mts +2 -2
  52. package/dist/validation/primitives/checkbox.d.ts +2 -2
  53. package/dist/validation/primitives/date.d.mts +2 -2
  54. package/dist/validation/primitives/date.d.ts +2 -2
  55. package/dist/validation/primitives/number.d.mts +2 -2
  56. package/dist/validation/primitives/number.d.ts +2 -2
  57. package/dist/validation/primitives/text.d.mts +2 -2
  58. package/dist/validation/primitives/text.d.ts +2 -2
  59. package/package.json +7 -2
@@ -1,105 +1,3 @@
1
- import { createDateValidator } from './chunk-Q44QKLN4.mjs';
2
- import { createNumberValidator } from './chunk-UANQJ2GH.mjs';
3
- import { createTextValidator } from './chunk-U36ZIBEM.mjs';
4
- import { createMultiselectValidator, createSelectValidator, createStatusValidator } from './chunk-ZDQ5AP26.mjs';
5
- import { createUserValidator } from './chunk-LV3FEUKU.mjs';
6
- import { createFormulaValidator } from './chunk-UXAHLSWC.mjs';
7
- import { createRollupValidator } from './chunk-NS63SPNN.mjs';
8
- import { createCheckboxValidator } from './chunk-OSSGN43B.mjs';
9
- import { createCurrencyValidator } from './chunk-AYVHMVKQ.mjs';
10
- import { createLocationValidator } from './chunk-YUFTHPOE.mjs';
11
- import { createPhoneValidator } from './chunk-JUKLL5RJ.mjs';
12
- import { createRelationValidator } from './chunk-GO6LQADH.mjs';
13
- import { createRichtextValidator } from './chunk-QVLQPW3O.mjs';
14
- import { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-HRQEZUAA.mjs';
15
- import { z } from 'zod';
16
-
17
- function isEmptyValue(value) {
18
- if (value === null || value === void 0) return true;
19
- if (typeof value === "string" && value.trim() === "") return true;
20
- if (value instanceof Date) return false;
21
- if (typeof value === "object" && !Array.isArray(value)) {
22
- return Object.values(value).every(
23
- (v) => v === null || v === void 0 || typeof v === "string" && v.trim() === ""
24
- );
25
- }
26
- return false;
27
- }
28
- function withEmptyToNull(validator) {
29
- return z.preprocess((val) => isEmptyValue(val) ? null : val, validator.nullish());
30
- }
31
-
32
- // src/validation/object/attribute-factory.ts
33
- function createAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
34
- switch (attr.type) {
35
- case "text":
36
- return createTextValidator(attr, messages);
37
- case "richtext":
38
- return createRichtextValidator(attr, messages);
39
- case "number":
40
- return createNumberValidator(attr, messages);
41
- case "checkbox":
42
- return createCheckboxValidator(attr, messages);
43
- case "date":
44
- return createDateValidator(attr, messages);
45
- case "phone":
46
- return createPhoneValidator(attr, messages);
47
- case "currency":
48
- return createCurrencyValidator(attr, messages);
49
- case "status":
50
- return createStatusValidator(attr, messages);
51
- case "location":
52
- return createLocationValidator(attr, messages);
53
- case "select":
54
- return createSelectValidator(attr, messages);
55
- case "multiselect":
56
- return createMultiselectValidator(attr, messages);
57
- case "user":
58
- return createUserValidator(attr, messages);
59
- case "relation":
60
- return createRelationValidator(attr, messages);
61
- case "formula":
62
- return createFormulaValidator(attr, messages);
63
- case "rollup":
64
- return createRollupValidator(attr, messages);
65
- default:
66
- return z.unknown();
67
- }
68
- }
69
- function createFormAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
70
- const validator = createAttributeValidator(attr, messages);
71
- if (!attr.required) {
72
- return withEmptyToNull(validator);
73
- }
74
- return validator;
75
- }
76
- var objectValidatorCache = /* @__PURE__ */ new WeakMap();
77
- var draftValidatorCache = /* @__PURE__ */ new WeakMap();
78
- function createObjectValidator(objectDef) {
79
- const cached = objectValidatorCache.get(objectDef);
80
- if (cached) return cached;
81
- const shape = {};
82
- for (const attr of objectDef.attributes) {
83
- const validator = createAttributeValidator(attr);
84
- shape[attr.name] = attr.required ? validator : withEmptyToNull(validator);
85
- }
86
- const schema = z.object(shape).passthrough();
87
- objectValidatorCache.set(objectDef, schema);
88
- return schema;
89
- }
90
- function createDraftValidator(objectDef) {
91
- const cached = draftValidatorCache.get(objectDef);
92
- if (cached) return cached;
93
- const shape = {};
94
- for (const attr of objectDef.attributes) {
95
- const validator = createAttributeValidator(attr);
96
- shape[attr.name] = withEmptyToNull(validator);
97
- }
98
- const schema = z.object(shape).passthrough();
99
- draftValidatorCache.set(objectDef, schema);
100
- return schema;
101
- }
102
-
103
1
  // src/exceptions.ts
104
2
  var SchemaErrorCode = {
105
3
  // Generic
@@ -222,7 +120,17 @@ var SchemaErrorCode = {
222
120
  EMAIL_IMAGE_PROXY_UPSTREAM_FAILED: "EMAIL_IMAGE_PROXY_UPSTREAM_FAILED",
223
121
  // Email provider sync — transport failures from Gmail / Microsoft Graph
224
122
  EMAIL_PROVIDER_API_FAILED: "EMAIL_PROVIDER_API_FAILED",
225
- EMAIL_BATCH_ITEM_FAILED: "EMAIL_BATCH_ITEM_FAILED"
123
+ EMAIL_BATCH_ITEM_FAILED: "EMAIL_BATCH_ITEM_FAILED",
124
+ // Reflexes — agent-authored deterministic automations
125
+ REFLEX_INVALID_TRANSITION: "REFLEX_INVALID_TRANSITION",
126
+ REFLEX_INVALID_TOKEN: "REFLEX_INVALID_TOKEN",
127
+ REFLEX_CAPABILITY_DENIED: "REFLEX_CAPABILITY_DENIED",
128
+ REFLEX_GATEWAY_UNAVAILABLE: "REFLEX_GATEWAY_UNAVAILABLE",
129
+ REFLEX_BUNDLE_FAILED: "REFLEX_BUNDLE_FAILED",
130
+ REFLEX_EGRESS_DENIED: "REFLEX_EGRESS_DENIED",
131
+ REFLEX_PROTOCOL_VIOLATION: "REFLEX_PROTOCOL_VIOLATION",
132
+ REFLEX_RUN_FAILED: "REFLEX_RUN_FAILED",
133
+ REFLEX_RUN_TIMEOUT: "REFLEX_RUN_TIMEOUT"
226
134
  };
227
135
  var SchemaError = class extends Error {
228
136
  constructor(message, code = SchemaErrorCode.UNKNOWN, details) {
@@ -598,116 +506,4 @@ function isObjectReferencedError(error) {
598
506
  return error instanceof ObjectReferencedError;
599
507
  }
600
508
 
601
- // src/validation/object/helpers.ts
602
- function validateAttribute(attr, value) {
603
- const validator = createAttributeValidator(attr);
604
- if (!attr.required && (value === void 0 || value === null)) {
605
- return { success: true, data: { [attr.name]: value } };
606
- }
607
- const result = validator.safeParse(value);
608
- if (result.success) {
609
- return {
610
- success: true,
611
- data: { [attr.name]: result.data }
612
- };
613
- }
614
- return {
615
- success: false,
616
- errors: formatZodErrors(result.error).map((err) => ({
617
- path: [attr.name, ...err.path],
618
- message: err.message
619
- }))
620
- };
621
- }
622
- function validateObject(objectDef, data) {
623
- const validator = createObjectValidator(objectDef);
624
- const result = validator.safeParse(data);
625
- if (result.success) {
626
- return {
627
- success: true,
628
- data: result.data
629
- };
630
- }
631
- return {
632
- success: false,
633
- errors: formatZodErrors(result.error)
634
- };
635
- }
636
- function validateObjectOrThrow(objectDef, data) {
637
- const result = validateObject(objectDef, data);
638
- if (!result.success) {
639
- const errors = result.errors ?? [];
640
- const detail = errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
641
- throw new ValidationError(
642
- `Validation failed for ${objectDef.label}:
643
- ${detail}`,
644
- errors.map((err) => ({ path: err.path, message: err.message }))
645
- );
646
- }
647
- return result.data;
648
- }
649
- function validateDraft(objectDef, data) {
650
- const validator = createDraftValidator(objectDef);
651
- const result = validator.safeParse(data);
652
- if (result.success) {
653
- return {
654
- success: true,
655
- data: result.data
656
- };
657
- }
658
- return {
659
- success: false,
660
- errors: formatZodErrors(result.error)
661
- };
662
- }
663
- function validateDraftOrThrow(objectDef, data) {
664
- const result = validateDraft(objectDef, data);
665
- if (!result.success) {
666
- const errors = result.errors ?? [];
667
- const detail = errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
668
- throw new ValidationError(
669
- `Draft validation failed for ${objectDef.label}:
670
- ${detail}`,
671
- errors.map((err) => ({ path: err.path, message: err.message }))
672
- );
673
- }
674
- return result.data;
675
- }
676
- function rejectUnknownAttributesOrThrow(objectDef, data) {
677
- const knownNames = new Set(objectDef.attributes.map((a) => a.name));
678
- const unknownKeys = Object.keys(data).filter((key) => !knownNames.has(key));
679
- if (unknownKeys.length > 0) {
680
- throw new ValidationError(
681
- `Unknown attribute${unknownKeys.length > 1 ? "s" : ""} for ${objectDef.label}: ${unknownKeys.join(", ")}`,
682
- unknownKeys.map((key) => ({ path: [key], message: "Unknown attribute" }))
683
- );
684
- }
685
- }
686
- function isValuePresent(value) {
687
- if (value === void 0 || value === null) {
688
- return false;
689
- }
690
- if (typeof value === "string" && value.trim() === "") {
691
- return false;
692
- }
693
- return true;
694
- }
695
- function getMissingRequiredAttributes(objectDef, data) {
696
- const missing = [];
697
- for (const attr of objectDef.attributes) {
698
- if (attr.required && !isValuePresent(data[attr.name])) {
699
- missing.push(attr);
700
- }
701
- }
702
- return missing;
703
- }
704
- function isRecordComplete(objectDef, data) {
705
- const missing = getMissingRequiredAttributes(objectDef, data);
706
- if (missing.length > 0) {
707
- return false;
708
- }
709
- const validation = validateObject(objectDef, data);
710
- return validation.success;
711
- }
712
-
713
- export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordComplete, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow };
509
+ export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, SearchBackendError, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordReferencedError, isSchemaError, isValidationError };
@@ -1,107 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var chunkSI34M4IC_js = require('./chunk-SI34M4IC.js');
4
- var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
5
- var chunkQAF3HNKQ_js = require('./chunk-QAF3HNKQ.js');
6
- var chunkQWKLQRBX_js = require('./chunk-QWKLQRBX.js');
7
- var chunkKNGWHQLR_js = require('./chunk-KNGWHQLR.js');
8
- var chunkHTSTPTNZ_js = require('./chunk-HTSTPTNZ.js');
9
- var chunkV2UA2D4E_js = require('./chunk-V2UA2D4E.js');
10
- var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
11
- var chunkACKMC6FL_js = require('./chunk-ACKMC6FL.js');
12
- var chunkE6JUYGJX_js = require('./chunk-E6JUYGJX.js');
13
- var chunkEBGRZUIH_js = require('./chunk-EBGRZUIH.js');
14
- var chunkEEH4XQ7W_js = require('./chunk-EEH4XQ7W.js');
15
- var chunkEW5XR2X3_js = require('./chunk-EW5XR2X3.js');
16
- var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
17
- var zod = require('zod');
18
-
19
- function isEmptyValue(value) {
20
- if (value === null || value === void 0) return true;
21
- if (typeof value === "string" && value.trim() === "") return true;
22
- if (value instanceof Date) return false;
23
- if (typeof value === "object" && !Array.isArray(value)) {
24
- return Object.values(value).every(
25
- (v) => v === null || v === void 0 || typeof v === "string" && v.trim() === ""
26
- );
27
- }
28
- return false;
29
- }
30
- function withEmptyToNull(validator) {
31
- return zod.z.preprocess((val) => isEmptyValue(val) ? null : val, validator.nullish());
32
- }
33
-
34
- // src/validation/object/attribute-factory.ts
35
- function createAttributeValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
36
- switch (attr.type) {
37
- case "text":
38
- return chunkQAF3HNKQ_js.createTextValidator(attr, messages);
39
- case "richtext":
40
- return chunkEW5XR2X3_js.createRichtextValidator(attr, messages);
41
- case "number":
42
- return chunkYIP5FJ5H_js.createNumberValidator(attr, messages);
43
- case "checkbox":
44
- return chunk5WATIVCA_js.createCheckboxValidator(attr, messages);
45
- case "date":
46
- return chunkSI34M4IC_js.createDateValidator(attr, messages);
47
- case "phone":
48
- return chunkEBGRZUIH_js.createPhoneValidator(attr, messages);
49
- case "currency":
50
- return chunkACKMC6FL_js.createCurrencyValidator(attr, messages);
51
- case "status":
52
- return chunkQWKLQRBX_js.createStatusValidator(attr, messages);
53
- case "location":
54
- return chunkE6JUYGJX_js.createLocationValidator(attr, messages);
55
- case "select":
56
- return chunkQWKLQRBX_js.createSelectValidator(attr, messages);
57
- case "multiselect":
58
- return chunkQWKLQRBX_js.createMultiselectValidator(attr, messages);
59
- case "user":
60
- return chunkKNGWHQLR_js.createUserValidator(attr, messages);
61
- case "relation":
62
- return chunkEEH4XQ7W_js.createRelationValidator(attr, messages);
63
- case "formula":
64
- return chunkHTSTPTNZ_js.createFormulaValidator(attr, messages);
65
- case "rollup":
66
- return chunkV2UA2D4E_js.createRollupValidator(attr, messages);
67
- default:
68
- return zod.z.unknown();
69
- }
70
- }
71
- function createFormAttributeValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
72
- const validator = createAttributeValidator(attr, messages);
73
- if (!attr.required) {
74
- return withEmptyToNull(validator);
75
- }
76
- return validator;
77
- }
78
- var objectValidatorCache = /* @__PURE__ */ new WeakMap();
79
- var draftValidatorCache = /* @__PURE__ */ new WeakMap();
80
- function createObjectValidator(objectDef) {
81
- const cached = objectValidatorCache.get(objectDef);
82
- if (cached) return cached;
83
- const shape = {};
84
- for (const attr of objectDef.attributes) {
85
- const validator = createAttributeValidator(attr);
86
- shape[attr.name] = attr.required ? validator : withEmptyToNull(validator);
87
- }
88
- const schema = zod.z.object(shape).passthrough();
89
- objectValidatorCache.set(objectDef, schema);
90
- return schema;
91
- }
92
- function createDraftValidator(objectDef) {
93
- const cached = draftValidatorCache.get(objectDef);
94
- if (cached) return cached;
95
- const shape = {};
96
- for (const attr of objectDef.attributes) {
97
- const validator = createAttributeValidator(attr);
98
- shape[attr.name] = withEmptyToNull(validator);
99
- }
100
- const schema = zod.z.object(shape).passthrough();
101
- draftValidatorCache.set(objectDef, schema);
102
- return schema;
103
- }
104
-
105
3
  // src/exceptions.ts
106
4
  var SchemaErrorCode = {
107
5
  // Generic
@@ -224,7 +122,17 @@ var SchemaErrorCode = {
224
122
  EMAIL_IMAGE_PROXY_UPSTREAM_FAILED: "EMAIL_IMAGE_PROXY_UPSTREAM_FAILED",
225
123
  // Email provider sync — transport failures from Gmail / Microsoft Graph
226
124
  EMAIL_PROVIDER_API_FAILED: "EMAIL_PROVIDER_API_FAILED",
227
- EMAIL_BATCH_ITEM_FAILED: "EMAIL_BATCH_ITEM_FAILED"
125
+ EMAIL_BATCH_ITEM_FAILED: "EMAIL_BATCH_ITEM_FAILED",
126
+ // Reflexes — agent-authored deterministic automations
127
+ REFLEX_INVALID_TRANSITION: "REFLEX_INVALID_TRANSITION",
128
+ REFLEX_INVALID_TOKEN: "REFLEX_INVALID_TOKEN",
129
+ REFLEX_CAPABILITY_DENIED: "REFLEX_CAPABILITY_DENIED",
130
+ REFLEX_GATEWAY_UNAVAILABLE: "REFLEX_GATEWAY_UNAVAILABLE",
131
+ REFLEX_BUNDLE_FAILED: "REFLEX_BUNDLE_FAILED",
132
+ REFLEX_EGRESS_DENIED: "REFLEX_EGRESS_DENIED",
133
+ REFLEX_PROTOCOL_VIOLATION: "REFLEX_PROTOCOL_VIOLATION",
134
+ REFLEX_RUN_FAILED: "REFLEX_RUN_FAILED",
135
+ REFLEX_RUN_TIMEOUT: "REFLEX_RUN_TIMEOUT"
228
136
  };
229
137
  var SchemaError = class extends Error {
230
138
  constructor(message, code = SchemaErrorCode.UNKNOWN, details) {
@@ -600,118 +508,6 @@ function isObjectReferencedError(error) {
600
508
  return error instanceof ObjectReferencedError;
601
509
  }
602
510
 
603
- // src/validation/object/helpers.ts
604
- function validateAttribute(attr, value) {
605
- const validator = createAttributeValidator(attr);
606
- if (!attr.required && (value === void 0 || value === null)) {
607
- return { success: true, data: { [attr.name]: value } };
608
- }
609
- const result = validator.safeParse(value);
610
- if (result.success) {
611
- return {
612
- success: true,
613
- data: { [attr.name]: result.data }
614
- };
615
- }
616
- return {
617
- success: false,
618
- errors: chunkYKWSHBT5_js.formatZodErrors(result.error).map((err) => ({
619
- path: [attr.name, ...err.path],
620
- message: err.message
621
- }))
622
- };
623
- }
624
- function validateObject(objectDef, data) {
625
- const validator = createObjectValidator(objectDef);
626
- const result = validator.safeParse(data);
627
- if (result.success) {
628
- return {
629
- success: true,
630
- data: result.data
631
- };
632
- }
633
- return {
634
- success: false,
635
- errors: chunkYKWSHBT5_js.formatZodErrors(result.error)
636
- };
637
- }
638
- function validateObjectOrThrow(objectDef, data) {
639
- const result = validateObject(objectDef, data);
640
- if (!result.success) {
641
- const errors = result.errors ?? [];
642
- const detail = errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
643
- throw new ValidationError(
644
- `Validation failed for ${objectDef.label}:
645
- ${detail}`,
646
- errors.map((err) => ({ path: err.path, message: err.message }))
647
- );
648
- }
649
- return result.data;
650
- }
651
- function validateDraft(objectDef, data) {
652
- const validator = createDraftValidator(objectDef);
653
- const result = validator.safeParse(data);
654
- if (result.success) {
655
- return {
656
- success: true,
657
- data: result.data
658
- };
659
- }
660
- return {
661
- success: false,
662
- errors: chunkYKWSHBT5_js.formatZodErrors(result.error)
663
- };
664
- }
665
- function validateDraftOrThrow(objectDef, data) {
666
- const result = validateDraft(objectDef, data);
667
- if (!result.success) {
668
- const errors = result.errors ?? [];
669
- const detail = errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("\n") || "Unknown validation error";
670
- throw new ValidationError(
671
- `Draft validation failed for ${objectDef.label}:
672
- ${detail}`,
673
- errors.map((err) => ({ path: err.path, message: err.message }))
674
- );
675
- }
676
- return result.data;
677
- }
678
- function rejectUnknownAttributesOrThrow(objectDef, data) {
679
- const knownNames = new Set(objectDef.attributes.map((a) => a.name));
680
- const unknownKeys = Object.keys(data).filter((key) => !knownNames.has(key));
681
- if (unknownKeys.length > 0) {
682
- throw new ValidationError(
683
- `Unknown attribute${unknownKeys.length > 1 ? "s" : ""} for ${objectDef.label}: ${unknownKeys.join(", ")}`,
684
- unknownKeys.map((key) => ({ path: [key], message: "Unknown attribute" }))
685
- );
686
- }
687
- }
688
- function isValuePresent(value) {
689
- if (value === void 0 || value === null) {
690
- return false;
691
- }
692
- if (typeof value === "string" && value.trim() === "") {
693
- return false;
694
- }
695
- return true;
696
- }
697
- function getMissingRequiredAttributes(objectDef, data) {
698
- const missing = [];
699
- for (const attr of objectDef.attributes) {
700
- if (attr.required && !isValuePresent(data[attr.name])) {
701
- missing.push(attr);
702
- }
703
- }
704
- return missing;
705
- }
706
- function isRecordComplete(objectDef, data) {
707
- const missing = getMissingRequiredAttributes(objectDef, data);
708
- if (missing.length > 0) {
709
- return false;
710
- }
711
- const validation = validateObject(objectDef, data);
712
- return validation.success;
713
- }
714
-
715
511
  exports.AccessDeniedError = AccessDeniedError;
716
512
  exports.AttributeInUseError = AttributeInUseError;
717
513
  exports.AttributeNotFoundError = AttributeNotFoundError;
@@ -742,22 +538,10 @@ exports.SyncConflictError = SyncConflictError;
742
538
  exports.SyncError = SyncError;
743
539
  exports.SystemEntityImmutableError = SystemEntityImmutableError;
744
540
  exports.ValidationError = ValidationError;
745
- exports.createAttributeValidator = createAttributeValidator;
746
- exports.createDraftValidator = createDraftValidator;
747
- exports.createFormAttributeValidator = createFormAttributeValidator;
748
- exports.createObjectValidator = createObjectValidator;
749
- exports.getMissingRequiredAttributes = getMissingRequiredAttributes;
750
541
  exports.isAttributeInUseError = isAttributeInUseError;
751
542
  exports.isNotFoundError = isNotFoundError;
752
543
  exports.isObjectReferencedError = isObjectReferencedError;
753
544
  exports.isProtectedResourceError = isProtectedResourceError;
754
- exports.isRecordComplete = isRecordComplete;
755
545
  exports.isRecordReferencedError = isRecordReferencedError;
756
546
  exports.isSchemaError = isSchemaError;
757
547
  exports.isValidationError = isValidationError;
758
- exports.rejectUnknownAttributesOrThrow = rejectUnknownAttributesOrThrow;
759
- exports.validateAttribute = validateAttribute;
760
- exports.validateDraft = validateDraft;
761
- exports.validateDraftOrThrow = validateDraftOrThrow;
762
- exports.validateObject = validateObject;
763
- exports.validateObjectOrThrow = validateObjectOrThrow;