@stndrds/schema 1.0.0-alpha.192 → 1.0.0-alpha.194
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/dist/attributes-DP08iPCh.d.mts +889 -0
- package/dist/attributes-Ddhps_AU.d.ts +889 -0
- package/dist/{chunk-MAKSIK3P.js → chunk-5WATIVCA.js} +2 -2
- package/dist/{chunk-4KRLCWJM.mjs → chunk-6I2R22CX.mjs} +1 -1
- package/dist/{chunk-DC7YYE3U.js → chunk-ACKMC6FL.js} +2 -2
- package/dist/{chunk-TEQNVO7W.mjs → chunk-AYVHMVKQ.mjs} +1 -1
- package/dist/{chunk-P2BE2A2G.js → chunk-BV3IUMMW.js} +4 -7
- package/dist/{chunk-CCB4OY2O.js → chunk-E6JUYGJX.js} +2 -2
- package/dist/{chunk-7A3Y6O32.js → chunk-EBGRZUIH.js} +2 -2
- package/dist/{chunk-QWZHR2OO.js → chunk-EW5XR2X3.js} +2 -2
- package/dist/{chunk-UQVW4KPP.mjs → chunk-HRQEZUAA.mjs} +0 -1
- package/dist/{chunk-OAQWRMTP.js → chunk-HTSTPTNZ.js} +2 -2
- package/dist/{chunk-U4JC7P6D.mjs → chunk-HXDDJLHD.mjs} +37 -52
- package/dist/{chunk-Z75P63VF.mjs → chunk-JUKLL5RJ.mjs} +1 -1
- package/dist/{chunk-YQROI4IE.js → chunk-M5QIBMIH.js} +37 -52
- package/dist/{chunk-FQ2ZYOVS.js → chunk-MZOEL7FN.js} +47 -41
- package/dist/{chunk-KWVCGQ7N.mjs → chunk-NOMHDOVE.mjs} +2 -5
- package/dist/{chunk-OLJLCVNY.mjs → chunk-NS63SPNN.mjs} +1 -1
- package/dist/{chunk-J5HRK3WD.js → chunk-O44XVGHE.js} +2 -2
- package/dist/{chunk-TMYBEXBT.mjs → chunk-OSSGN43B.mjs} +1 -1
- package/dist/{chunk-LTHSU4NF.mjs → chunk-PMKCDRRO.mjs} +26 -21
- package/dist/{chunk-4TC27SMF.mjs → chunk-QEZUDVTN.mjs} +1 -1
- package/dist/{chunk-BLXQGQLK.mjs → chunk-QVLQPW3O.mjs} +1 -1
- package/dist/{chunk-EZHMVZQ4.js → chunk-QWKLQRBX.js} +4 -4
- package/dist/{chunk-ROAZLZA2.js → chunk-ROLWVTU3.js} +2 -2
- package/dist/{chunk-3JINFUN3.js → chunk-SGSGREPG.js} +2 -6
- package/dist/{chunk-VXOTYFEW.js → chunk-T6L2MUG2.js} +2 -2
- package/dist/{chunk-KNYZH2WD.mjs → chunk-UANQJ2GH.mjs} +8 -1
- package/dist/{chunk-IRTRJH37.mjs → chunk-UXAHLSWC.mjs} +1 -1
- package/dist/{chunk-ACQ3TUFK.js → chunk-V2UA2D4E.js} +2 -2
- package/dist/{chunk-R4CJHCC4.mjs → chunk-XZ5RG2OG.mjs} +1 -4
- package/dist/{chunk-TKN73433.js → chunk-YIP5FJ5H.js} +9 -2
- package/dist/{chunk-T225DB55.js → chunk-YKWSHBT5.js} +0 -1
- package/dist/{chunk-TBYXYSGA.mjs → chunk-YUFTHPOE.mjs} +1 -1
- package/dist/{chunk-ITTQ4FGR.mjs → chunk-ZDMOXF3U.mjs} +1 -1
- package/dist/{chunk-SMOHDR6M.mjs → chunk-ZDQ5AP26.mjs} +1 -1
- package/dist/{helpers-Y9rNQ6sz.d.ts → helpers-Bph8AoY7.d.mts} +15 -3
- package/dist/{helpers-HrKmSkLi.d.mts → helpers-D9klos6x.d.ts} +15 -3
- package/dist/index.d.mts +1121 -235
- package/dist/index.d.ts +1121 -235
- package/dist/index.js +2369 -854
- package/dist/index.mjs +2264 -774
- package/dist/{types-Bdlhgrf7.d.ts → types-D38kriFw.d.mts} +1 -2
- package/dist/{types-C5DittlR.d.mts → types-iKvYBe6v.d.ts} +1 -2
- package/dist/validation/all.d.mts +3 -3
- package/dist/validation/all.d.ts +3 -3
- package/dist/validation/all.js +30 -27
- package/dist/validation/all.mjs +17 -18
- package/dist/validation/complex/currency.d.mts +2 -2
- package/dist/validation/complex/currency.d.ts +2 -2
- package/dist/validation/complex/currency.js +3 -3
- package/dist/validation/complex/currency.mjs +2 -2
- package/dist/validation/complex/file.d.mts +2 -2
- package/dist/validation/complex/file.d.ts +2 -2
- package/dist/validation/complex/file.js +3 -3
- package/dist/validation/complex/file.mjs +2 -2
- package/dist/validation/complex/location.d.mts +2 -2
- package/dist/validation/complex/location.d.ts +2 -2
- package/dist/validation/complex/location.js +3 -3
- package/dist/validation/complex/location.mjs +2 -2
- package/dist/validation/complex/phone.d.mts +2 -2
- package/dist/validation/complex/phone.d.ts +2 -2
- package/dist/validation/complex/phone.js +3 -3
- package/dist/validation/complex/phone.mjs +2 -2
- package/dist/validation/complex/relation.d.mts +2 -2
- package/dist/validation/complex/relation.d.ts +2 -2
- package/dist/validation/complex/relation.js +5 -5
- package/dist/validation/complex/relation.mjs +2 -2
- package/dist/validation/complex/richtext.d.mts +2 -2
- package/dist/validation/complex/richtext.d.ts +2 -2
- package/dist/validation/complex/richtext.js +3 -3
- package/dist/validation/complex/richtext.mjs +2 -2
- package/dist/validation/complex/select.d.mts +2 -2
- package/dist/validation/complex/select.d.ts +2 -2
- package/dist/validation/complex/select.js +5 -5
- package/dist/validation/complex/select.mjs +2 -2
- package/dist/validation/complex/user.d.mts +2 -2
- package/dist/validation/complex/user.d.ts +2 -2
- package/dist/validation/complex/user.js +3 -3
- package/dist/validation/complex/user.mjs +2 -2
- package/dist/validation/computed/formula.d.mts +2 -2
- package/dist/validation/computed/formula.d.ts +2 -2
- package/dist/validation/computed/formula.js +3 -3
- package/dist/validation/computed/formula.mjs +2 -2
- package/dist/validation/computed/rollup.d.mts +2 -2
- package/dist/validation/computed/rollup.d.ts +2 -2
- package/dist/validation/computed/rollup.js +3 -3
- package/dist/validation/computed/rollup.mjs +2 -2
- package/dist/validation/config/index.d.mts +1 -1
- package/dist/validation/config/index.d.ts +1 -1
- package/dist/validation/config/index.js +4 -4
- package/dist/validation/config/index.mjs +1 -1
- package/dist/validation/core/index.d.mts +3 -3
- package/dist/validation/core/index.d.ts +3 -3
- package/dist/validation/core/index.js +3 -3
- package/dist/validation/core/index.mjs +1 -1
- package/dist/validation/object/index.d.mts +3 -3
- package/dist/validation/object/index.d.ts +3 -3
- package/dist/validation/object/index.js +32 -29
- package/dist/validation/object/index.mjs +16 -17
- package/dist/validation/primitives/checkbox.d.mts +2 -2
- package/dist/validation/primitives/checkbox.d.ts +2 -2
- package/dist/validation/primitives/checkbox.js +3 -3
- package/dist/validation/primitives/checkbox.mjs +2 -2
- package/dist/validation/primitives/date.d.mts +2 -2
- package/dist/validation/primitives/date.d.ts +2 -2
- package/dist/validation/primitives/date.js +3 -3
- package/dist/validation/primitives/date.mjs +2 -2
- package/dist/validation/primitives/number.d.mts +2 -2
- package/dist/validation/primitives/number.d.ts +2 -2
- package/dist/validation/primitives/number.js +3 -3
- package/dist/validation/primitives/number.mjs +2 -2
- package/dist/validation/primitives/text.d.mts +3 -8
- package/dist/validation/primitives/text.d.ts +3 -8
- package/dist/validation/primitives/text.js +3 -7
- package/dist/validation/primitives/text.mjs +2 -2
- package/package.json +2 -13
- package/dist/chunk-D7WFIGXW.js +0 -14
- package/dist/chunk-RUYUFXNW.mjs +0 -12
- package/dist/filters-DVBn5tov.d.ts +0 -1630
- package/dist/filters-HDG4kLoo.d.mts +0 -1630
- package/dist/validation/primitives/rating.d.mts +0 -12
- package/dist/validation/primitives/rating.d.ts +0 -12
- package/dist/validation/primitives/rating.js +0 -11
- package/dist/validation/primitives/rating.mjs +0 -2
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var chunkT225DB55_js = require('./chunk-T225DB55.js');
|
|
3
|
+
var chunk5WATIVCA_js = require('./chunk-5WATIVCA.js');
|
|
4
|
+
var chunkO44XVGHE_js = require('./chunk-O44XVGHE.js');
|
|
5
|
+
var chunkYIP5FJ5H_js = require('./chunk-YIP5FJ5H.js');
|
|
6
|
+
var chunkSGSGREPG_js = require('./chunk-SGSGREPG.js');
|
|
7
|
+
var chunkEW5XR2X3_js = require('./chunk-EW5XR2X3.js');
|
|
8
|
+
var chunkQWKLQRBX_js = require('./chunk-QWKLQRBX.js');
|
|
9
|
+
var chunkT6L2MUG2_js = require('./chunk-T6L2MUG2.js');
|
|
10
|
+
var chunkHTSTPTNZ_js = require('./chunk-HTSTPTNZ.js');
|
|
11
|
+
var chunkV2UA2D4E_js = require('./chunk-V2UA2D4E.js');
|
|
12
|
+
var chunkACKMC6FL_js = require('./chunk-ACKMC6FL.js');
|
|
13
|
+
var chunkROLWVTU3_js = require('./chunk-ROLWVTU3.js');
|
|
14
|
+
var chunkE6JUYGJX_js = require('./chunk-E6JUYGJX.js');
|
|
15
|
+
var chunkEBGRZUIH_js = require('./chunk-EBGRZUIH.js');
|
|
16
|
+
var chunkBV3IUMMW_js = require('./chunk-BV3IUMMW.js');
|
|
17
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
19
18
|
var zod = require('zod');
|
|
20
19
|
|
|
21
20
|
function isEmptyValue(value) {
|
|
@@ -34,49 +33,45 @@ function withEmptyToNull(validator) {
|
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
// src/validation/object/attribute-factory.ts
|
|
37
|
-
function createAttributeValidator(attr, messages =
|
|
36
|
+
function createAttributeValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
38
37
|
switch (attr.type) {
|
|
39
38
|
case "text":
|
|
40
|
-
return
|
|
41
|
-
case "textarea":
|
|
42
|
-
return chunk3JINFUN3_js.createTextAreaValidator(attr, messages);
|
|
39
|
+
return chunkSGSGREPG_js.createTextValidator(attr, messages);
|
|
43
40
|
case "richtext":
|
|
44
|
-
return
|
|
41
|
+
return chunkEW5XR2X3_js.createRichtextValidator(attr, messages);
|
|
45
42
|
case "number":
|
|
46
|
-
return
|
|
43
|
+
return chunkYIP5FJ5H_js.createNumberValidator(attr, messages);
|
|
47
44
|
case "checkbox":
|
|
48
|
-
return
|
|
45
|
+
return chunk5WATIVCA_js.createCheckboxValidator(attr, messages);
|
|
49
46
|
case "date":
|
|
50
|
-
return
|
|
47
|
+
return chunkO44XVGHE_js.createDateValidator(attr, messages);
|
|
51
48
|
case "phone":
|
|
52
|
-
return
|
|
49
|
+
return chunkEBGRZUIH_js.createPhoneValidator(attr, messages);
|
|
53
50
|
case "currency":
|
|
54
|
-
return
|
|
51
|
+
return chunkACKMC6FL_js.createCurrencyValidator(attr, messages);
|
|
55
52
|
case "status":
|
|
56
|
-
return
|
|
53
|
+
return chunkQWKLQRBX_js.createStatusValidator(attr, messages);
|
|
57
54
|
case "location":
|
|
58
|
-
return
|
|
55
|
+
return chunkE6JUYGJX_js.createLocationValidator(attr, messages);
|
|
59
56
|
case "select":
|
|
60
|
-
return
|
|
57
|
+
return chunkQWKLQRBX_js.createSelectValidator(attr, messages);
|
|
61
58
|
case "multiselect":
|
|
62
|
-
return
|
|
59
|
+
return chunkQWKLQRBX_js.createMultiselectValidator(attr, messages);
|
|
63
60
|
case "file":
|
|
64
|
-
return
|
|
61
|
+
return chunkROLWVTU3_js.createFileValidator(attr, messages);
|
|
65
62
|
case "user":
|
|
66
|
-
return
|
|
63
|
+
return chunkT6L2MUG2_js.createUserValidator(attr, messages);
|
|
67
64
|
case "relation":
|
|
68
|
-
return
|
|
69
|
-
case "rating":
|
|
70
|
-
return chunkD7WFIGXW_js.createRatingValidator(attr, messages);
|
|
65
|
+
return chunkBV3IUMMW_js.createRelationValidator(attr, messages);
|
|
71
66
|
case "formula":
|
|
72
|
-
return
|
|
67
|
+
return chunkHTSTPTNZ_js.createFormulaValidator(attr, messages);
|
|
73
68
|
case "rollup":
|
|
74
|
-
return
|
|
69
|
+
return chunkV2UA2D4E_js.createRollupValidator(attr, messages);
|
|
75
70
|
default:
|
|
76
71
|
return zod.z.unknown();
|
|
77
72
|
}
|
|
78
73
|
}
|
|
79
|
-
function createFormAttributeValidator(attr, messages =
|
|
74
|
+
function createFormAttributeValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
80
75
|
const validator = createAttributeValidator(attr, messages);
|
|
81
76
|
if (!attr.required) {
|
|
82
77
|
return withEmptyToNull(validator);
|
|
@@ -548,7 +543,7 @@ function validateAttribute(attr, value) {
|
|
|
548
543
|
}
|
|
549
544
|
return {
|
|
550
545
|
success: false,
|
|
551
|
-
errors:
|
|
546
|
+
errors: chunkYKWSHBT5_js.formatZodErrors(result.error).map((err) => ({
|
|
552
547
|
path: [attr.name, ...err.path],
|
|
553
548
|
message: err.message
|
|
554
549
|
}))
|
|
@@ -565,7 +560,7 @@ function validateObject(objectDef, data) {
|
|
|
565
560
|
}
|
|
566
561
|
return {
|
|
567
562
|
success: false,
|
|
568
|
-
errors:
|
|
563
|
+
errors: chunkYKWSHBT5_js.formatZodErrors(result.error)
|
|
569
564
|
};
|
|
570
565
|
}
|
|
571
566
|
function validateObjectOrThrow(objectDef, data) {
|
|
@@ -592,7 +587,7 @@ function validateDraft(objectDef, data) {
|
|
|
592
587
|
}
|
|
593
588
|
return {
|
|
594
589
|
success: false,
|
|
595
|
-
errors:
|
|
590
|
+
errors: chunkYKWSHBT5_js.formatZodErrors(result.error)
|
|
596
591
|
};
|
|
597
592
|
}
|
|
598
593
|
function validateDraftOrThrow(objectDef, data) {
|
|
@@ -608,6 +603,16 @@ ${detail}`,
|
|
|
608
603
|
}
|
|
609
604
|
return result.data;
|
|
610
605
|
}
|
|
606
|
+
function rejectUnknownAttributesOrThrow(objectDef, data) {
|
|
607
|
+
const knownNames = new Set(objectDef.attributes.map((a) => a.name));
|
|
608
|
+
const unknownKeys = Object.keys(data).filter((key) => !knownNames.has(key));
|
|
609
|
+
if (unknownKeys.length > 0) {
|
|
610
|
+
throw new ValidationError(
|
|
611
|
+
`Unknown attribute${unknownKeys.length > 1 ? "s" : ""} for ${objectDef.label}: ${unknownKeys.join(", ")}`,
|
|
612
|
+
unknownKeys.map((key) => ({ path: [key], message: "Unknown attribute" }))
|
|
613
|
+
);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
611
616
|
function isValuePresent(value) {
|
|
612
617
|
if (value === void 0 || value === null) {
|
|
613
618
|
return false;
|
|
@@ -681,6 +686,7 @@ exports.isRecordComplete = isRecordComplete;
|
|
|
681
686
|
exports.isRecordReferencedError = isRecordReferencedError;
|
|
682
687
|
exports.isSchemaError = isSchemaError;
|
|
683
688
|
exports.isValidationError = isValidationError;
|
|
689
|
+
exports.rejectUnknownAttributesOrThrow = rejectUnknownAttributesOrThrow;
|
|
684
690
|
exports.validateAttribute = validateAttribute;
|
|
685
691
|
exports.validateDraft = validateDraft;
|
|
686
692
|
exports.validateDraftOrThrow = validateDraftOrThrow;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-
|
|
1
|
+
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-HRQEZUAA.mjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
// src/lib/lru-cache.ts
|
|
@@ -71,8 +71,5 @@ function createTextValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
|
71
71
|
}
|
|
72
72
|
return schema;
|
|
73
73
|
}
|
|
74
|
-
function createTextAreaValidator(_attr, _messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
75
|
-
return z.string();
|
|
76
|
-
}
|
|
77
74
|
|
|
78
|
-
export {
|
|
75
|
+
export { createTextValidator };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createDateValidator(attr, messages =
|
|
6
|
+
function createDateValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
return zod.z.coerce.date({ message: messages.invalidDate(attr) });
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { createCheckboxValidator } from './chunk-
|
|
2
|
-
import { createDateValidator } from './chunk-
|
|
3
|
-
import { createNumberValidator } from './chunk-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-UQVW4KPP.mjs';
|
|
1
|
+
import { createCheckboxValidator } from './chunk-OSSGN43B.mjs';
|
|
2
|
+
import { createDateValidator } from './chunk-6I2R22CX.mjs';
|
|
3
|
+
import { createNumberValidator } from './chunk-UANQJ2GH.mjs';
|
|
4
|
+
import { createTextValidator } from './chunk-NOMHDOVE.mjs';
|
|
5
|
+
import { createRichtextValidator } from './chunk-QVLQPW3O.mjs';
|
|
6
|
+
import { createMultiselectValidator, createSelectValidator, createStatusValidator } from './chunk-ZDQ5AP26.mjs';
|
|
7
|
+
import { createUserValidator } from './chunk-ZDMOXF3U.mjs';
|
|
8
|
+
import { createFormulaValidator } from './chunk-UXAHLSWC.mjs';
|
|
9
|
+
import { createRollupValidator } from './chunk-NS63SPNN.mjs';
|
|
10
|
+
import { createCurrencyValidator } from './chunk-AYVHMVKQ.mjs';
|
|
11
|
+
import { createFileValidator } from './chunk-QEZUDVTN.mjs';
|
|
12
|
+
import { createLocationValidator } from './chunk-YUFTHPOE.mjs';
|
|
13
|
+
import { createPhoneValidator } from './chunk-JUKLL5RJ.mjs';
|
|
14
|
+
import { createRelationValidator } from './chunk-XZ5RG2OG.mjs';
|
|
15
|
+
import { DEFAULT_VALIDATION_MESSAGES, formatZodErrors } from './chunk-HRQEZUAA.mjs';
|
|
17
16
|
import { z } from 'zod';
|
|
18
17
|
|
|
19
18
|
function isEmptyValue(value) {
|
|
@@ -36,8 +35,6 @@ function createAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES)
|
|
|
36
35
|
switch (attr.type) {
|
|
37
36
|
case "text":
|
|
38
37
|
return createTextValidator(attr, messages);
|
|
39
|
-
case "textarea":
|
|
40
|
-
return createTextAreaValidator(attr, messages);
|
|
41
38
|
case "richtext":
|
|
42
39
|
return createRichtextValidator(attr, messages);
|
|
43
40
|
case "number":
|
|
@@ -64,8 +61,6 @@ function createAttributeValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES)
|
|
|
64
61
|
return createUserValidator(attr, messages);
|
|
65
62
|
case "relation":
|
|
66
63
|
return createRelationValidator(attr, messages);
|
|
67
|
-
case "rating":
|
|
68
|
-
return createRatingValidator(attr, messages);
|
|
69
64
|
case "formula":
|
|
70
65
|
return createFormulaValidator(attr, messages);
|
|
71
66
|
case "rollup":
|
|
@@ -606,6 +601,16 @@ ${detail}`,
|
|
|
606
601
|
}
|
|
607
602
|
return result.data;
|
|
608
603
|
}
|
|
604
|
+
function rejectUnknownAttributesOrThrow(objectDef, data) {
|
|
605
|
+
const knownNames = new Set(objectDef.attributes.map((a) => a.name));
|
|
606
|
+
const unknownKeys = Object.keys(data).filter((key) => !knownNames.has(key));
|
|
607
|
+
if (unknownKeys.length > 0) {
|
|
608
|
+
throw new ValidationError(
|
|
609
|
+
`Unknown attribute${unknownKeys.length > 1 ? "s" : ""} for ${objectDef.label}: ${unknownKeys.join(", ")}`,
|
|
610
|
+
unknownKeys.map((key) => ({ path: [key], message: "Unknown attribute" }))
|
|
611
|
+
);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
609
614
|
function isValuePresent(value) {
|
|
610
615
|
if (value === void 0 || value === null) {
|
|
611
616
|
return false;
|
|
@@ -636,4 +641,4 @@ function computeRecordStatus(objectDef, data) {
|
|
|
636
641
|
return isRecordComplete(objectDef, data) ? "complete" : "draft";
|
|
637
642
|
}
|
|
638
643
|
|
|
639
|
-
export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordComplete, isRecordReferencedError, isSchemaError, isValidationError, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow };
|
|
644
|
+
export { AccessDeniedError, AttributeInUseError, AttributeNotFoundError, ChangeTypeNotSupportedError, ConcurrentModificationError, DestructiveSyncNotAllowedError, DuplicateError, ForbiddenError, MemoryNotFoundError, MigrationTimeoutError, NotFoundError, NotImplementedError, ObjectNotFoundError, ObjectReferencedError, OrphanSystemAttributeError, ProtectedResourceError, ProtectedRoleError, RecordNotFoundError, RecordReferencedError, RepositoryError, RoleNotFoundError, SchemaError, SchemaErrorCode, StorageError, SyncCascadeError, SyncConflictError, SyncError, SystemEntityImmutableError, ValidationError, computeRecordStatus, createAttributeValidator, createDraftValidator, createFormAttributeValidator, createObjectValidator, getMissingRequiredAttributes, isAttributeInUseError, isNotFoundError, isObjectReferencedError, isProtectedResourceError, isRecordComplete, isRecordReferencedError, isSchemaError, isValidationError, rejectUnknownAttributesOrThrow, validateAttribute, validateDraft, validateDraftOrThrow, validateObject, validateObjectOrThrow };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createSelectValidator(attr, messages =
|
|
6
|
+
function createSelectValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
const validValues = attr.options.map((opt) => opt.value);
|
|
8
8
|
if (validValues.length === 0) return zod.z.never();
|
|
9
9
|
const validLabels = attr.options.map((opt) => opt.label);
|
|
@@ -11,7 +11,7 @@ function createSelectValidator(attr, messages = chunkT225DB55_js.DEFAULT_VALIDAT
|
|
|
11
11
|
message: messages.invalidOption(attr, validLabels)
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
function createMultiselectValidator(attr, messages =
|
|
14
|
+
function createMultiselectValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
15
15
|
const validValues = attr.options.map((opt) => opt.value);
|
|
16
16
|
if (validValues.length === 0) return zod.z.never();
|
|
17
17
|
const validLabels = attr.options.map((opt) => opt.label);
|
|
@@ -21,7 +21,7 @@ function createMultiselectValidator(attr, messages = chunkT225DB55_js.DEFAULT_VA
|
|
|
21
21
|
})
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
|
-
function createStatusValidator(attr, messages =
|
|
24
|
+
function createStatusValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
25
25
|
const validValues = attr.options.map((opt) => opt.value);
|
|
26
26
|
if (validValues.length === 0) return zod.z.never();
|
|
27
27
|
const validLabels = attr.options.map((opt) => opt.label);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createFileValidator(attr, messages =
|
|
6
|
+
function createFileValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
const uuidSchema = zod.z.uuid({
|
|
8
8
|
message: messages.invalidId(attr)
|
|
9
9
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
6
|
// src/lib/lru-cache.ts
|
|
@@ -57,7 +57,7 @@ function getCachedRegex(cache, pattern) {
|
|
|
57
57
|
|
|
58
58
|
// src/validation/primitives/text.ts
|
|
59
59
|
var textRegexCache = createRegexCache();
|
|
60
|
-
function createTextValidator(attr, messages =
|
|
60
|
+
function createTextValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
61
61
|
let schema = zod.z.string();
|
|
62
62
|
if (attr.minLength !== void 0) {
|
|
63
63
|
schema = schema.min(attr.minLength, messages.minLength(attr, attr.minLength));
|
|
@@ -73,9 +73,5 @@ function createTextValidator(attr, messages = chunkT225DB55_js.DEFAULT_VALIDATIO
|
|
|
73
73
|
}
|
|
74
74
|
return schema;
|
|
75
75
|
}
|
|
76
|
-
function createTextAreaValidator(_attr, _messages = chunkT225DB55_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
77
|
-
return zod.z.string();
|
|
78
|
-
}
|
|
79
76
|
|
|
80
|
-
exports.createTextAreaValidator = createTextAreaValidator;
|
|
81
77
|
exports.createTextValidator = createTextValidator;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createUserValidator(attr, messages =
|
|
6
|
+
function createUserValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
const uuidSchema = zod.z.uuid({
|
|
8
8
|
message: messages.invalidId(attr)
|
|
9
9
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-
|
|
1
|
+
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-HRQEZUAA.mjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
function createNumberValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
@@ -9,6 +9,13 @@ function createNumberValidator(attr, messages = DEFAULT_VALIDATION_MESSAGES) {
|
|
|
9
9
|
if (attr.max !== void 0) {
|
|
10
10
|
schema = schema.max(attr.max, messages.maxValue(attr, attr.max));
|
|
11
11
|
}
|
|
12
|
+
if (attr.renderAs === "rating") {
|
|
13
|
+
schema = schema.min(attr.min ?? 0);
|
|
14
|
+
schema = schema.max(attr.max ?? 5);
|
|
15
|
+
}
|
|
16
|
+
if (attr.unit === "percentage") {
|
|
17
|
+
schema = schema.min(attr.min ?? 0).max(attr.max ?? 100);
|
|
18
|
+
}
|
|
12
19
|
if (attr.unit === "integer") {
|
|
13
20
|
schema = schema.int(messages.mustBeInteger(attr));
|
|
14
21
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createRollupValidator(_attr, _messages =
|
|
6
|
+
function createRollupValidator(_attr, _messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
return zod.z.unknown();
|
|
8
8
|
}
|
|
9
9
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-
|
|
1
|
+
import { DEFAULT_VALIDATION_MESSAGES } from './chunk-HRQEZUAA.mjs';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
function extractRelationId(item) {
|
|
@@ -34,9 +34,6 @@ function createMultiRelationValidator(attr, messages = DEFAULT_VALIDATION_MESSAG
|
|
|
34
34
|
// Allow additional properties
|
|
35
35
|
]);
|
|
36
36
|
let arraySchema = z.array(itemSchema);
|
|
37
|
-
if (attr.minItems !== void 0) {
|
|
38
|
-
arraySchema = arraySchema.min(attr.minItems, messages.minItems(attr, attr.minItems));
|
|
39
|
-
}
|
|
40
37
|
if (attr.maxItems !== void 0) {
|
|
41
38
|
arraySchema = arraySchema.max(attr.maxItems, messages.maxItems(attr, attr.maxItems));
|
|
42
39
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkYKWSHBT5_js = require('./chunk-YKWSHBT5.js');
|
|
4
4
|
var zod = require('zod');
|
|
5
5
|
|
|
6
|
-
function createNumberValidator(attr, messages =
|
|
6
|
+
function createNumberValidator(attr, messages = chunkYKWSHBT5_js.DEFAULT_VALIDATION_MESSAGES) {
|
|
7
7
|
let schema = zod.z.number();
|
|
8
8
|
if (attr.min !== void 0) {
|
|
9
9
|
schema = schema.min(attr.min, messages.minValue(attr, attr.min));
|
|
@@ -11,6 +11,13 @@ function createNumberValidator(attr, messages = chunkT225DB55_js.DEFAULT_VALIDAT
|
|
|
11
11
|
if (attr.max !== void 0) {
|
|
12
12
|
schema = schema.max(attr.max, messages.maxValue(attr, attr.max));
|
|
13
13
|
}
|
|
14
|
+
if (attr.renderAs === "rating") {
|
|
15
|
+
schema = schema.min(attr.min ?? 0);
|
|
16
|
+
schema = schema.max(attr.max ?? 5);
|
|
17
|
+
}
|
|
18
|
+
if (attr.unit === "percentage") {
|
|
19
|
+
schema = schema.min(attr.min ?? 0).max(attr.max ?? 100);
|
|
20
|
+
}
|
|
14
21
|
if (attr.unit === "integer") {
|
|
15
22
|
schema = schema.int(messages.mustBeInteger(attr));
|
|
16
23
|
}
|
|
@@ -13,7 +13,6 @@ var DEFAULT_VALIDATION_MESSAGES = {
|
|
|
13
13
|
invalidDate: (attr) => `${attr.label} must be a valid date`,
|
|
14
14
|
invalidOption: (attr, options) => `${attr.label} must be one of: ${options.join(", ")}`,
|
|
15
15
|
invalidId: (attr) => `${attr.label} must be a valid ID`,
|
|
16
|
-
minItems: (attr, min) => `${attr.label} must have at least ${min} item${min > 1 ? "s" : ""}`,
|
|
17
16
|
maxItems: (attr, max) => `${attr.label} must have at most ${max} item${max > 1 ? "s" : ""}`,
|
|
18
17
|
invalidRichtext: (attr) => `${attr.label} must be valid rich text content`,
|
|
19
18
|
invalidPhone: (attr) => `${attr.label} must be a valid phone number`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { A as Attribute, O as ObjectDefinition,
|
|
3
|
-
import { V as ValidationMessages, a as ValidationResult } from './types-
|
|
2
|
+
import { A as Attribute, O as ObjectDefinition, h as CompletionStatus } from './attributes-DP08iPCh.mjs';
|
|
3
|
+
import { V as ValidationMessages, a as ValidationResult } from './types-D38kriFw.mjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Create a Zod schema for any attribute type.
|
|
@@ -51,6 +51,18 @@ declare function validateDraft(objectDef: ObjectDefinition, data: Record<string,
|
|
|
51
51
|
* Throws `ValidationError` so HTTP adapters map it to 400.
|
|
52
52
|
*/
|
|
53
53
|
declare function validateDraftOrThrow(objectDef: ObjectDefinition, data: Record<string, unknown>): Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Throw a `ValidationError` when `data` contains keys that do not correspond
|
|
56
|
+
* to any attribute declared on `objectDef`.
|
|
57
|
+
*
|
|
58
|
+
* Call this on **client-supplied input** before Zod validation so the error
|
|
59
|
+
* message clearly names every offending key. Do NOT call on merged data that
|
|
60
|
+
* includes existing record values — older records may legitimately carry stale
|
|
61
|
+
* keys that predate this guard (see issue #658).
|
|
62
|
+
*
|
|
63
|
+
* Maps to HTTP 400 via `SchemaExceptionFilter` (code SCHEMA_VALIDATION_FAILED).
|
|
64
|
+
*/
|
|
65
|
+
declare function rejectUnknownAttributesOrThrow(objectDef: ObjectDefinition, data: Record<string, unknown>): void;
|
|
54
66
|
/**
|
|
55
67
|
* Get the list of required attributes that are missing values.
|
|
56
68
|
*/
|
|
@@ -64,4 +76,4 @@ declare function isRecordComplete(objectDef: ObjectDefinition, data: Record<stri
|
|
|
64
76
|
*/
|
|
65
77
|
declare function computeRecordStatus(objectDef: ObjectDefinition, data: Record<string, unknown>): CompletionStatus;
|
|
66
78
|
|
|
67
|
-
export { createFormAttributeValidator as a, validateDraftOrThrow as b, computeRecordStatus as c, validateObject as d, validateObjectOrThrow as e, createAttributeValidator as f, getMissingRequiredAttributes as g, validateAttribute as h, isRecordComplete as i, validateDraft as v };
|
|
79
|
+
export { createFormAttributeValidator as a, validateDraftOrThrow as b, computeRecordStatus as c, validateObject as d, validateObjectOrThrow as e, createAttributeValidator as f, getMissingRequiredAttributes as g, validateAttribute as h, isRecordComplete as i, rejectUnknownAttributesOrThrow as r, validateDraft as v };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { A as Attribute, O as ObjectDefinition,
|
|
3
|
-
import { V as ValidationMessages, a as ValidationResult } from './types-
|
|
2
|
+
import { A as Attribute, O as ObjectDefinition, h as CompletionStatus } from './attributes-Ddhps_AU.js';
|
|
3
|
+
import { V as ValidationMessages, a as ValidationResult } from './types-iKvYBe6v.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Create a Zod schema for any attribute type.
|
|
@@ -51,6 +51,18 @@ declare function validateDraft(objectDef: ObjectDefinition, data: Record<string,
|
|
|
51
51
|
* Throws `ValidationError` so HTTP adapters map it to 400.
|
|
52
52
|
*/
|
|
53
53
|
declare function validateDraftOrThrow(objectDef: ObjectDefinition, data: Record<string, unknown>): Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Throw a `ValidationError` when `data` contains keys that do not correspond
|
|
56
|
+
* to any attribute declared on `objectDef`.
|
|
57
|
+
*
|
|
58
|
+
* Call this on **client-supplied input** before Zod validation so the error
|
|
59
|
+
* message clearly names every offending key. Do NOT call on merged data that
|
|
60
|
+
* includes existing record values — older records may legitimately carry stale
|
|
61
|
+
* keys that predate this guard (see issue #658).
|
|
62
|
+
*
|
|
63
|
+
* Maps to HTTP 400 via `SchemaExceptionFilter` (code SCHEMA_VALIDATION_FAILED).
|
|
64
|
+
*/
|
|
65
|
+
declare function rejectUnknownAttributesOrThrow(objectDef: ObjectDefinition, data: Record<string, unknown>): void;
|
|
54
66
|
/**
|
|
55
67
|
* Get the list of required attributes that are missing values.
|
|
56
68
|
*/
|
|
@@ -64,4 +76,4 @@ declare function isRecordComplete(objectDef: ObjectDefinition, data: Record<stri
|
|
|
64
76
|
*/
|
|
65
77
|
declare function computeRecordStatus(objectDef: ObjectDefinition, data: Record<string, unknown>): CompletionStatus;
|
|
66
78
|
|
|
67
|
-
export { createFormAttributeValidator as a, validateDraftOrThrow as b, computeRecordStatus as c, validateObject as d, validateObjectOrThrow as e, createAttributeValidator as f, getMissingRequiredAttributes as g, validateAttribute as h, isRecordComplete as i, validateDraft as v };
|
|
79
|
+
export { createFormAttributeValidator as a, validateDraftOrThrow as b, computeRecordStatus as c, validateObject as d, validateObjectOrThrow as e, createAttributeValidator as f, getMissingRequiredAttributes as g, validateAttribute as h, isRecordComplete as i, rejectUnknownAttributesOrThrow as r, validateDraft as v };
|