@oxog/vld 2.1.0 → 2.2.7
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/CHANGELOG.md +113 -0
- package/README.md +413 -1235
- package/dist/chunks/errors-core-CerMg2rq.js +1 -0
- package/dist/chunks/index-CkbfQQ4n.js +1 -0
- package/dist/chunks/index-yjpbvFgw.js +1 -0
- package/dist/chunks/ip-validation-g5LWgy9t.js +1 -0
- package/dist/chunks/security-Dy24T8N7.js +1 -0
- package/dist/cjs/chunks/errors-core-DrydF46s.cjs +1 -0
- package/dist/cjs/chunks/index-BEV9nG0N.cjs +1 -0
- package/dist/cjs/chunks/index-ZjHAxYdA.cjs +1 -0
- package/dist/cjs/chunks/ip-validation-BZqPamPC.cjs +1 -0
- package/dist/cjs/chunks/security-aXZVI7qW.cjs +1 -0
- package/dist/cjs/cli/bin.cjs +1 -505
- package/dist/cjs/cli/index.cjs +1 -209
- package/dist/cjs/codecs/index.cjs +1 -45
- package/dist/cjs/coercion/index.cjs +1 -588
- package/dist/cjs/compat/emitter.cjs +1 -184
- package/dist/cjs/compat/result.cjs +1 -189
- package/dist/cjs/errors.cjs +1 -180
- package/dist/cjs/index.cjs +1 -1894
- package/dist/cjs/kernel.cjs +1 -415
- package/dist/cjs/locales/af.cjs +1 -108
- package/dist/cjs/locales/ar.cjs +1 -108
- package/dist/cjs/locales/bn.cjs +1 -108
- package/dist/cjs/locales/da.cjs +1 -108
- package/dist/cjs/locales/de.cjs +1 -108
- package/dist/cjs/locales/en.cjs +1 -108
- package/dist/cjs/locales/es-MX.cjs +1 -107
- package/dist/cjs/locales/es.cjs +1 -96
- package/dist/cjs/locales/fi.cjs +1 -108
- package/dist/cjs/locales/fr.cjs +1 -96
- package/dist/cjs/locales/hi.cjs +1 -108
- package/dist/cjs/locales/id.cjs +1 -108
- package/dist/cjs/locales/index.cjs +1 -43
- package/dist/cjs/locales/it.cjs +1 -108
- package/dist/cjs/locales/ja.cjs +1 -108
- package/dist/cjs/locales/ko.cjs +1 -108
- package/dist/cjs/locales/lazy.cjs +1 -188
- package/dist/cjs/locales/nl.cjs +1 -108
- package/dist/cjs/locales/no.cjs +1 -108
- package/dist/cjs/locales/pl.cjs +1 -108
- package/dist/cjs/locales/pt-BR.cjs +1 -108
- package/dist/cjs/locales/pt.cjs +1 -108
- package/dist/cjs/locales/ru.cjs +1 -108
- package/dist/cjs/locales/runtime.cjs +1 -51
- package/dist/cjs/locales/sv.cjs +1 -108
- package/dist/cjs/locales/sw.cjs +1 -108
- package/dist/cjs/locales/th.cjs +1 -108
- package/dist/cjs/locales/tr.cjs +1 -108
- package/dist/cjs/locales/vi.cjs +1 -108
- package/dist/cjs/locales/zh.cjs +1 -108
- package/dist/cjs/mini.cjs +1 -242
- package/dist/cjs/pigment.cjs +1 -207
- package/dist/cjs/plugins/index.cjs +1 -12
- package/dist/cjs/registry.cjs +1 -37
- package/dist/cjs/v3/index.cjs +1 -425
- package/dist/cjs/v4/core/index.cjs +1 -894
- package/dist/cjs/v4/index.cjs +1 -425
- package/dist/cjs/v4/locales/index.cjs +1 -130
- package/dist/cjs/v4/mini/index.cjs +1 -509
- package/dist/cjs/v4-mini/index.cjs +1 -532
- package/dist/cjs/validators/any.cjs +1 -40
- package/dist/cjs/validators/array.cjs +1 -283
- package/dist/cjs/validators/base.cjs +1 -887
- package/dist/cjs/validators/base64.cjs +1 -73
- package/dist/cjs/validators/bigint.cjs +1 -232
- package/dist/cjs/validators/boolean.cjs +1 -146
- package/dist/cjs/validators/codec.cjs +1 -205
- package/dist/cjs/validators/custom.cjs +1 -71
- package/dist/cjs/validators/date.cjs +1 -278
- package/dist/cjs/validators/discriminated-union.cjs +1 -130
- package/dist/cjs/validators/enum.cjs +1 -154
- package/dist/cjs/validators/file.cjs +1 -130
- package/dist/cjs/validators/function.cjs +1 -63
- package/dist/cjs/validators/hex.cjs +1 -70
- package/dist/cjs/validators/index.cjs +1 -123
- package/dist/cjs/validators/intersection.cjs +1 -120
- package/dist/cjs/validators/json.cjs +1 -70
- package/dist/cjs/validators/lazy.cjs +1 -53
- package/dist/cjs/validators/literal.cjs +1 -64
- package/dist/cjs/validators/map.cjs +1 -218
- package/dist/cjs/validators/nan.cjs +1 -41
- package/dist/cjs/validators/never.cjs +1 -36
- package/dist/cjs/validators/null.cjs +1 -43
- package/dist/cjs/validators/number.cjs +1 -427
- package/dist/cjs/validators/object.cjs +1 -868
- package/dist/cjs/validators/promise.cjs +1 -115
- package/dist/cjs/validators/record.cjs +1 -262
- package/dist/cjs/validators/set.cjs +1 -203
- package/dist/cjs/validators/string-bool.cjs +1 -124
- package/dist/cjs/validators/string-formats.cjs +1 -168
- package/dist/cjs/validators/string.cjs +1 -12
- package/dist/cjs/validators/symbol.cjs +1 -62
- package/dist/cjs/validators/template-literal.cjs +1 -108
- package/dist/cjs/validators/tuple.cjs +1 -187
- package/dist/cjs/validators/uint8array.cjs +1 -106
- package/dist/cjs/validators/undefined.cjs +1 -43
- package/dist/cjs/validators/union.cjs +1 -191
- package/dist/cjs/validators/unknown.cjs +1 -40
- package/dist/cjs/validators/void.cjs +1 -48
- package/dist/cjs/validators/xor.cjs +1 -69
- package/dist/cli/bin.js +1 -406
- package/dist/cli/index.js +1 -205
- package/dist/codecs/index.js +1 -11
- package/dist/coercion/index.js +1 -579
- package/dist/compat/emitter.js +1 -180
- package/dist/compat/result.js +1 -170
- package/dist/errors-core.d.ts +32 -2
- package/dist/errors.js +1 -171
- package/dist/index.d.ts +315 -361
- package/dist/index.js +1 -1534
- package/dist/kernel.js +1 -409
- package/dist/locales/af.js +1 -106
- package/dist/locales/ar.js +1 -106
- package/dist/locales/bn.js +1 -106
- package/dist/locales/da.js +1 -106
- package/dist/locales/de.js +1 -106
- package/dist/locales/en.js +1 -106
- package/dist/locales/es-MX.js +1 -105
- package/dist/locales/es.js +1 -94
- package/dist/locales/fi.js +1 -106
- package/dist/locales/fr.js +1 -94
- package/dist/locales/hi.js +1 -106
- package/dist/locales/id.js +1 -106
- package/dist/locales/index.js +1 -29
- package/dist/locales/it.js +1 -106
- package/dist/locales/ja.js +1 -106
- package/dist/locales/ko.js +1 -106
- package/dist/locales/lazy.js +1 -177
- package/dist/locales/nl.js +1 -106
- package/dist/locales/no.js +1 -106
- package/dist/locales/pl.js +1 -106
- package/dist/locales/pt-BR.js +1 -106
- package/dist/locales/pt.js +1 -106
- package/dist/locales/ru.js +1 -106
- package/dist/locales/runtime.js +1 -41
- package/dist/locales/sv.js +1 -106
- package/dist/locales/sw.js +1 -106
- package/dist/locales/th.js +1 -106
- package/dist/locales/tr.js +1 -106
- package/dist/locales/vi.js +1 -106
- package/dist/locales/zh.js +1 -106
- package/dist/mini.d.ts +3 -3
- package/dist/mini.js +1 -156
- package/dist/pigment.js +1 -180
- package/dist/plugins/index.js +1 -1
- package/dist/registry.js +1 -34
- package/dist/utils/json-schema.d.ts +10 -1
- package/dist/v3/index.js +1 -46
- package/dist/v4/core/index.d.ts +28 -16
- package/dist/v4/core/index.js +1 -277
- package/dist/v4/index.js +1 -50
- package/dist/v4/locales/index.d.ts +4 -0
- package/dist/v4/locales/index.js +1 -77
- package/dist/v4/mini/index.js +1 -47
- package/dist/v4-mini/index.d.ts +1 -1
- package/dist/v4-mini/index.js +1 -75
- package/dist/validators/any.js +1 -37
- package/dist/validators/array.d.ts +7 -0
- package/dist/validators/array.js +1 -279
- package/dist/validators/base.d.ts +210 -17
- package/dist/validators/base.js +1 -868
- package/dist/validators/base64.js +1 -68
- package/dist/validators/bigint.d.ts +7 -0
- package/dist/validators/bigint.js +1 -228
- package/dist/validators/boolean.js +1 -142
- package/dist/validators/codec.js +1 -200
- package/dist/validators/custom.d.ts +20 -10
- package/dist/validators/custom.js +1 -67
- package/dist/validators/date.d.ts +2 -0
- package/dist/validators/date.js +1 -274
- package/dist/validators/discriminated-union.d.ts +4 -2
- package/dist/validators/discriminated-union.js +1 -123
- package/dist/validators/enum.d.ts +8 -2
- package/dist/validators/enum.js +1 -150
- package/dist/validators/file.js +1 -125
- package/dist/validators/function.js +1 -58
- package/dist/validators/hex.js +1 -65
- package/dist/validators/index.d.ts +1 -1
- package/dist/validators/index.js +1 -35
- package/dist/validators/intersection.js +1 -116
- package/dist/validators/json.js +1 -66
- package/dist/validators/lazy.js +1 -50
- package/dist/validators/literal.d.ts +8 -3
- package/dist/validators/literal.js +1 -60
- package/dist/validators/map.d.ts +7 -0
- package/dist/validators/map.js +1 -214
- package/dist/validators/nan.js +1 -38
- package/dist/validators/never.js +1 -32
- package/dist/validators/null.js +1 -40
- package/dist/validators/number.d.ts +25 -1
- package/dist/validators/number.js +1 -423
- package/dist/validators/object.d.ts +18 -2
- package/dist/validators/object.js +1 -864
- package/dist/validators/promise.d.ts +6 -7
- package/dist/validators/promise.js +1 -111
- package/dist/validators/record.d.ts +13 -8
- package/dist/validators/record.js +1 -258
- package/dist/validators/set.d.ts +5 -0
- package/dist/validators/set.js +1 -199
- package/dist/validators/string-bool.js +1 -120
- package/dist/validators/string-formats.d.ts +58 -62
- package/dist/validators/string-formats.js +1 -135
- package/dist/validators/string.d.ts +49 -10
- package/dist/validators/string.js +1 -4
- package/dist/validators/symbol.js +1 -58
- package/dist/validators/template-literal.js +1 -103
- package/dist/validators/tuple.d.ts +17 -13
- package/dist/validators/tuple.js +1 -183
- package/dist/validators/uint8array.js +1 -101
- package/dist/validators/undefined.js +1 -40
- package/dist/validators/union.d.ts +1 -0
- package/dist/validators/union.js +1 -187
- package/dist/validators/unknown.js +1 -37
- package/dist/validators/void.js +1 -44
- package/dist/validators/xor.d.ts +2 -2
- package/dist/validators/xor.js +1 -66
- package/package.json +240 -238
- package/dist/chunks/errors-core-BeiFUtZM.js +0 -81
- package/dist/chunks/index-0R2ntSud.js +0 -508
- package/dist/chunks/index-BvH403Yy.js +0 -88
- package/dist/chunks/security-B0Pd_vSY.js +0 -35
- package/dist/chunks/string-BJRQod3t.js +0 -530
- package/dist/cjs/chunks/errors-core-DWxLFs2f.cjs +0 -83
- package/dist/cjs/chunks/index-BkI37108.cjs +0 -538
- package/dist/cjs/chunks/index-Cc3bjUMX.cjs +0 -91
- package/dist/cjs/chunks/security-Dc3Jh13T.cjs +0 -37
- package/dist/cjs/chunks/string-BKZrc4hs.cjs +0 -533
|
@@ -1,64 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
6
|
-
require('../registry.cjs');
|
|
7
|
-
require('../locales/en.cjs');
|
|
8
|
-
|
|
9
|
-
function createLiteralError(message) {
|
|
10
|
-
return new errorsCore.VldError([{ code: 'invalid_literal', path: [], message }]);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Immutable literal validator for exact value matching
|
|
14
|
-
*/
|
|
15
|
-
class VldLiteral extends validators_base.VldBase {
|
|
16
|
-
/**
|
|
17
|
-
* Private constructor to enforce immutability
|
|
18
|
-
*/
|
|
19
|
-
constructor(_literal, errorMessage) {
|
|
20
|
-
super(validators_base.VLD_VALIDATOR_TYPES.LITERAL);
|
|
21
|
-
this._literal = _literal;
|
|
22
|
-
this.errorMessage = errorMessage;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Get the literal value
|
|
26
|
-
*/
|
|
27
|
-
get literal() {
|
|
28
|
-
return this._literal;
|
|
29
|
-
}
|
|
30
|
-
get isSimple() {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Create a new literal validator
|
|
35
|
-
*/
|
|
36
|
-
static create(literal) {
|
|
37
|
-
return new VldLiteral(literal);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Parse and validate a literal value
|
|
41
|
-
*/
|
|
42
|
-
parse(value) {
|
|
43
|
-
if (value !== this._literal) {
|
|
44
|
-
throw new Error(this.errorMessage ||
|
|
45
|
-
locales_runtime.getMessages().literalExpected(JSON.stringify(this._literal), JSON.stringify(value)));
|
|
46
|
-
}
|
|
47
|
-
return this._literal;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Safely parse and validate a literal value
|
|
51
|
-
*/
|
|
52
|
-
safeParse(value) {
|
|
53
|
-
if (value === this._literal) {
|
|
54
|
-
return { success: true, data: this._literal };
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
success: false,
|
|
58
|
-
error: createLiteralError(this.errorMessage ||
|
|
59
|
-
locales_runtime.getMessages().literalExpected(JSON.stringify(this._literal), JSON.stringify(value)))
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
exports.VldLiteral = VldLiteral;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");function t(e){const r=JSON.stringify(e,(e,r)=>"bigint"==typeof r?r.toString():r);return void 0===r?String(e):r}require("../registry.cjs"),require("../locales/en.cjs");class VldLiteral extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.LITERAL),this._values=r,this.errorMessage=s}get literal(){return this._values[0]}get value(){return this._values[0]}get values(){return this._values}get isSimple(){return 1===this._values.length}get expectedDisplay(){return t(1===this._values.length?this._values[0]:this._values)}static create(e){const r=Array.isArray(e)?e:[e];if(0===r.length)throw new Error("Cannot create literal schema with no valid values");return new VldLiteral(r)}parse(e){if(!this._values.includes(e))throw this._createLiteralError(e);return e}_createLiteralError(e){const a={code:"invalid_value",path:[],values:[...this._values],message:this.errorMessage||r.getMessages().literalExpected(this.expectedDisplay,t(e))};return new s.VldError([a])}safeParse(e){return this._values.includes(e)?{success:!0,data:e}:{success:!1,error:this._createLiteralError(e)}}}exports.VldLiteral=VldLiteral;
|
|
@@ -1,218 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
6
|
-
require('../registry.cjs');
|
|
7
|
-
require('../locales/en.cjs');
|
|
8
|
-
|
|
9
|
-
function createMapError(message) {
|
|
10
|
-
return new errorsCore.VldError([{ code: 'invalid_type', path: [], message }]);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Immutable Map validator
|
|
14
|
-
*/
|
|
15
|
-
class VldMap extends validators_base.VldBase {
|
|
16
|
-
/**
|
|
17
|
-
* Private constructor to enforce immutability
|
|
18
|
-
*/
|
|
19
|
-
constructor(keyValidator, valueValidator, errorMessage) {
|
|
20
|
-
super(validators_base.VLD_VALIDATOR_TYPES.MAP);
|
|
21
|
-
this.keyValidator = keyValidator;
|
|
22
|
-
this.valueValidator = valueValidator;
|
|
23
|
-
this.errorMessage = errorMessage;
|
|
24
|
-
this._simpleKeyMode = this.getSimpleItemMode(keyValidator);
|
|
25
|
-
this._simpleValueMode = this.getSimpleItemMode(valueValidator);
|
|
26
|
-
this._simpleKeyValue = this._simpleKeyMode === 'literal' ? keyValidator.literal : undefined;
|
|
27
|
-
this._simpleValueValue = this._simpleValueMode === 'literal' ? valueValidator.literal : undefined;
|
|
28
|
-
}
|
|
29
|
-
get keySchema() {
|
|
30
|
-
return this.keyValidator;
|
|
31
|
-
}
|
|
32
|
-
get valueSchema() {
|
|
33
|
-
return this.valueValidator;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create a new Map validator
|
|
37
|
-
*/
|
|
38
|
-
static create(keyValidator, valueValidator) {
|
|
39
|
-
return new VldMap(keyValidator, valueValidator);
|
|
40
|
-
}
|
|
41
|
-
getSimpleItemMode(validator) {
|
|
42
|
-
if (validator.isSimple !== true) {
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
switch (validator.validatorType) {
|
|
46
|
-
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
47
|
-
return 'string';
|
|
48
|
-
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
49
|
-
return 'number';
|
|
50
|
-
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
51
|
-
return 'boolean';
|
|
52
|
-
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
53
|
-
return 'bigint';
|
|
54
|
-
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
55
|
-
return 'symbol';
|
|
56
|
-
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
57
|
-
return 'null';
|
|
58
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
59
|
-
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
60
|
-
return 'undefinedValue';
|
|
61
|
-
case validators_base.VLD_VALIDATOR_TYPES.LITERAL:
|
|
62
|
-
return 'literal';
|
|
63
|
-
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
64
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
65
|
-
return 'passthrough';
|
|
66
|
-
default:
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
getSimpleItemError(mode, expected, received) {
|
|
71
|
-
switch (mode) {
|
|
72
|
-
case 'string':
|
|
73
|
-
return locales_runtime.getMessages().invalidString;
|
|
74
|
-
case 'number':
|
|
75
|
-
return locales_runtime.getMessages().invalidNumber;
|
|
76
|
-
case 'boolean':
|
|
77
|
-
return locales_runtime.getMessages().invalidBoolean;
|
|
78
|
-
case 'bigint':
|
|
79
|
-
return locales_runtime.getMessages().invalidBigint;
|
|
80
|
-
case 'symbol':
|
|
81
|
-
return locales_runtime.getMessages().invalidSymbol;
|
|
82
|
-
case 'null':
|
|
83
|
-
return `Expected null, received ${typeof received}`;
|
|
84
|
-
case 'undefinedValue':
|
|
85
|
-
return locales_runtime.getMessages().expectedUndefined;
|
|
86
|
-
case 'literal':
|
|
87
|
-
return locales_runtime.getMessages().literalExpected(JSON.stringify(expected), JSON.stringify(received));
|
|
88
|
-
default:
|
|
89
|
-
return locales_runtime.getMessages().invalidMap;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
parseSimpleItem(mode, expected, value) {
|
|
93
|
-
switch (mode) {
|
|
94
|
-
case 'string':
|
|
95
|
-
if (typeof value !== 'string') {
|
|
96
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
97
|
-
}
|
|
98
|
-
return value;
|
|
99
|
-
case 'number':
|
|
100
|
-
if (typeof value !== 'number' || isNaN(value)) {
|
|
101
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
102
|
-
}
|
|
103
|
-
return value;
|
|
104
|
-
case 'boolean':
|
|
105
|
-
if (typeof value !== 'boolean') {
|
|
106
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
107
|
-
}
|
|
108
|
-
return value;
|
|
109
|
-
case 'bigint':
|
|
110
|
-
if (typeof value !== 'bigint') {
|
|
111
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
112
|
-
}
|
|
113
|
-
return value;
|
|
114
|
-
case 'symbol':
|
|
115
|
-
if (typeof value !== 'symbol') {
|
|
116
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
117
|
-
}
|
|
118
|
-
return value;
|
|
119
|
-
case 'null':
|
|
120
|
-
if (value !== null) {
|
|
121
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
122
|
-
}
|
|
123
|
-
return null;
|
|
124
|
-
case 'undefinedValue':
|
|
125
|
-
if (value !== undefined) {
|
|
126
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
127
|
-
}
|
|
128
|
-
return undefined;
|
|
129
|
-
case 'literal':
|
|
130
|
-
if (value !== expected) {
|
|
131
|
-
throw new Error(this.getSimpleItemError(mode, expected, value));
|
|
132
|
-
}
|
|
133
|
-
return expected;
|
|
134
|
-
case 'passthrough':
|
|
135
|
-
return value;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Parse and validate a Map value
|
|
140
|
-
*/
|
|
141
|
-
parse(value) {
|
|
142
|
-
if (!(value instanceof Map)) {
|
|
143
|
-
throw new Error(this.errorMessage || locales_runtime.getMessages().invalidMap);
|
|
144
|
-
}
|
|
145
|
-
return this.parseKnownMap(value);
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Parse a value that has already passed the Map instance guard.
|
|
149
|
-
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
150
|
-
*/
|
|
151
|
-
parseKnownMap(value) {
|
|
152
|
-
const result = new Map();
|
|
153
|
-
const simpleKeyMode = this._simpleKeyMode;
|
|
154
|
-
const simpleValueMode = this._simpleValueMode;
|
|
155
|
-
if (simpleKeyMode === 'string' && simpleValueMode === 'number') {
|
|
156
|
-
for (const [key, val] of value) {
|
|
157
|
-
if (typeof key !== 'string') {
|
|
158
|
-
throw new Error(this.getSimpleItemError(simpleKeyMode, this._simpleKeyValue, key));
|
|
159
|
-
}
|
|
160
|
-
if (typeof val !== 'number' || isNaN(val)) {
|
|
161
|
-
throw new Error(this.getSimpleItemError(simpleValueMode, this._simpleValueValue, val));
|
|
162
|
-
}
|
|
163
|
-
result.set(key, val);
|
|
164
|
-
}
|
|
165
|
-
return result;
|
|
166
|
-
}
|
|
167
|
-
if (simpleKeyMode === 'string' && simpleValueMode === 'string') {
|
|
168
|
-
for (const [key, val] of value) {
|
|
169
|
-
if (typeof key !== 'string') {
|
|
170
|
-
throw new Error(this.getSimpleItemError(simpleKeyMode, this._simpleKeyValue, key));
|
|
171
|
-
}
|
|
172
|
-
if (typeof val !== 'string') {
|
|
173
|
-
throw new Error(this.getSimpleItemError(simpleValueMode, this._simpleValueValue, val));
|
|
174
|
-
}
|
|
175
|
-
result.set(key, val);
|
|
176
|
-
}
|
|
177
|
-
return result;
|
|
178
|
-
}
|
|
179
|
-
if (simpleKeyMode !== undefined && simpleValueMode !== undefined) {
|
|
180
|
-
const keyMode = simpleKeyMode;
|
|
181
|
-
const valueMode = simpleValueMode;
|
|
182
|
-
for (const [key, val] of value) {
|
|
183
|
-
const validKey = this.parseSimpleItem(keyMode, this._simpleKeyValue, key);
|
|
184
|
-
const validValue = this.parseSimpleItem(valueMode, this._simpleValueValue, val);
|
|
185
|
-
result.set(validKey, validValue);
|
|
186
|
-
}
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
for (const [key, val] of value) {
|
|
190
|
-
try {
|
|
191
|
-
const validKey = simpleKeyMode === undefined
|
|
192
|
-
? this.keyValidator.parse(key)
|
|
193
|
-
: this.parseSimpleItem(simpleKeyMode, this._simpleKeyValue, key);
|
|
194
|
-
const validValue = simpleValueMode === undefined
|
|
195
|
-
? this.valueValidator.parse(val)
|
|
196
|
-
: this.parseSimpleItem(simpleValueMode, this._simpleValueValue, val);
|
|
197
|
-
result.set(validKey, validValue);
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
throw new Error(error.message);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return result;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Safely parse and validate a Map value
|
|
207
|
-
*/
|
|
208
|
-
safeParse(value) {
|
|
209
|
-
try {
|
|
210
|
-
return { success: true, data: this.parse(value) };
|
|
211
|
-
}
|
|
212
|
-
catch (error) {
|
|
213
|
-
return { success: false, error: createMapError(error.message) };
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
exports.VldMap = VldMap;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),t=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldMap extends e.VldBase{constructor(r,t,s,i=[]){super(e.VLD_VALIDATOR_TYPES.MAP),this.keyValidator=r,this.valueValidator=t,this.errorMessage=s,this._checks=i,this._simpleKeyMode=this.getSimpleItemMode(r),this._simpleValueMode=this.getSimpleItemMode(t),this._simpleKeyValue="literal"===this._simpleKeyMode?r.literal:void 0,this._simpleValueValue="literal"===this._simpleValueMode?t.literal:void 0}get keySchema(){return this.keyValidator}get valueSchema(){return this.valueValidator}get keyType(){return this.keyValidator}get valueType(){return this.valueValidator}static create(e,r){return new VldMap(e,r)}getSimpleItemMode(r){if(!0===r.isSimple)switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return"string";case e.VLD_VALIDATOR_TYPES.NUMBER:return"number";case e.VLD_VALIDATOR_TYPES.BOOLEAN:return"boolean";case e.VLD_VALIDATOR_TYPES.BIGINT:return"bigint";case e.VLD_VALIDATOR_TYPES.SYMBOL:return"symbol";case e.VLD_VALIDATOR_TYPES.NULL:return"null";case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return"undefinedValue";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}getSimpleItemError(e,t,s){switch(e){case"string":return r.getMessages().invalidString;case"number":return r.getMessages().invalidNumber;case"boolean":return r.getMessages().invalidBoolean;case"bigint":return r.getMessages().invalidBigint;case"symbol":return r.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof s;case"undefinedValue":return r.getMessages().expectedUndefined;case"literal":return r.getMessages().literalExpected(JSON.stringify(t),JSON.stringify(s));default:return r.getMessages().invalidMap}}parseSimpleItem(e,r,t){switch(e){case"string":if("string"!=typeof t)throw new Error(this.getSimpleItemError(e,r,t));return t;case"number":if("number"!=typeof t||isNaN(t))throw new Error(this.getSimpleItemError(e,r,t));return t;case"boolean":if("boolean"!=typeof t)throw new Error(this.getSimpleItemError(e,r,t));return t;case"bigint":if("bigint"!=typeof t)throw new Error(this.getSimpleItemError(e,r,t));return t;case"symbol":if("symbol"!=typeof t)throw new Error(this.getSimpleItemError(e,r,t));return t;case"null":if(null!==t)throw new Error(this.getSimpleItemError(e,r,t));return null;case"undefinedValue":if(void 0!==t)throw new Error(this.getSimpleItemError(e,r,t));return;case"literal":if(t!==r)throw new Error(this.getSimpleItemError(e,r,t));return r;case"passthrough":return t}}parse(e){if(!(e instanceof Map))throw new Error(this.errorMessage||r.getMessages().invalidMap);return this.parseKnownMap(e)}parseKnownMap(e){const r=new Map,t=this._simpleKeyMode,s=this._simpleValueMode;if("string"===t&&"number"===s)for(const[i,a]of e){if("string"!=typeof i)throw new Error(this.getSimpleItemError(t,this._simpleKeyValue,i));if("number"!=typeof a||isNaN(a))throw new Error(this.getSimpleItemError(s,this._simpleValueValue,a));r.set(i,a)}else if("string"===t&&"string"===s)for(const[i,a]of e){if("string"!=typeof i)throw new Error(this.getSimpleItemError(t,this._simpleKeyValue,i));if("string"!=typeof a)throw new Error(this.getSimpleItemError(s,this._simpleValueValue,a));r.set(i,a)}else if(void 0!==t&&void 0!==s){const i=t,a=s;for(const[t,s]of e){const e=this.parseSimpleItem(i,this._simpleKeyValue,t),n=this.parseSimpleItem(a,this._simpleValueValue,s);r.set(e,n)}}else for(const[i,a]of e)try{const e=void 0===t?this.keyValidator.parse(i):this.parseSimpleItem(t,this._simpleKeyValue,i),n=void 0===s?this.valueValidator.parse(a):this.parseSimpleItem(s,this._simpleValueValue,a);r.set(e,n)}catch(e){throw new Error(e.message)}for(const e of this._checks)if(!e.fn(r))throw new Error(e.message);return r}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(r=e.message,new t.VldError([{code:"invalid_type",path:[],message:r}]))}}var r}min(e,r){return new VldMap(this.keyValidator,this.valueValidator,this.errorMessage,[...this._checks,{fn:r=>r.size>=e,message:r||`Map must contain at least ${e} entries`}])}max(e,r){return new VldMap(this.keyValidator,this.valueValidator,this.errorMessage,[...this._checks,{fn:r=>r.size<=e,message:r||`Map must contain at most ${e} entries`}])}size(e,r){return new VldMap(this.keyValidator,this.valueValidator,this.errorMessage,[...this._checks,{fn:r=>r.size===e,message:r||`Map must contain exactly ${e} entries`}])}nonempty(e){return this.min(1,e||"Map cannot be empty")}}exports.VldMap=VldMap;
|
|
@@ -1,41 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
5
|
-
require('../registry.cjs');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* VldNan - Validates that a value is NaN (Not a Number)
|
|
9
|
-
* Part of Zod 4 API parity implementation
|
|
10
|
-
*/
|
|
11
|
-
function createNanError(message) {
|
|
12
|
-
return new errorsCore.VldError([{ code: 'invalid_number', path: [], message }]);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* NaN validator - validates that a value is NaN
|
|
16
|
-
* Note: Uses Number.isNaN() which is more strict than global isNaN()
|
|
17
|
-
*/
|
|
18
|
-
class VldNan extends validators_base.VldBase {
|
|
19
|
-
constructor() {
|
|
20
|
-
super(validators_base.VLD_VALIDATOR_TYPES.NAN);
|
|
21
|
-
}
|
|
22
|
-
static create() {
|
|
23
|
-
return new VldNan();
|
|
24
|
-
}
|
|
25
|
-
parse(value) {
|
|
26
|
-
if (typeof value !== 'number' || !Number.isNaN(value)) {
|
|
27
|
-
throw new Error(`Expected NaN, received ${typeof value === 'number' ? 'a valid number' : typeof value}`);
|
|
28
|
-
}
|
|
29
|
-
return value;
|
|
30
|
-
}
|
|
31
|
-
safeParse(value) {
|
|
32
|
-
try {
|
|
33
|
-
return { success: true, data: this.parse(value) };
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
return { success: false, error: createNanError(error.message) };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
exports.VldNan = VldNan;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs");class VldNan extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.NAN)}static create(){return new VldNan}parse(e){if("number"!=typeof e||!Number.isNaN(e))throw new Error("Expected NaN, received "+("number"==typeof e?"a valid number":typeof e));return e}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(s=e.message,new r.VldError([{code:"invalid_number",path:[],message:s}]))}}var s}}exports.VldNan=VldNan;
|
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
6
|
-
require('../registry.cjs');
|
|
7
|
-
require('../locales/en.cjs');
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Validator that never succeeds
|
|
11
|
-
*/
|
|
12
|
-
class VldNever extends validators_base.VldBase {
|
|
13
|
-
/**
|
|
14
|
-
* Create a new never validator
|
|
15
|
-
*/
|
|
16
|
-
static create() {
|
|
17
|
-
return new VldNever();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parse never value (always fails)
|
|
21
|
-
*/
|
|
22
|
-
parse(_value) {
|
|
23
|
-
throw new Error(locales_runtime.getMessages().neverType);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Safely parse never value (always fails)
|
|
27
|
-
*/
|
|
28
|
-
safeParse(_value) {
|
|
29
|
-
return {
|
|
30
|
-
success: false,
|
|
31
|
-
error: new errorsCore.VldError([{ code: 'invalid_type', path: [], message: locales_runtime.getMessages().neverType }])
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
exports.VldNever = VldNever;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldNever extends e.VldBase{static create(){return new VldNever}parse(e){throw new Error(r.getMessages().neverType)}safeParse(e){return{success:!1,error:new s.VldError([{code:"invalid_type",path:[],message:r.getMessages().neverType}])}}}exports.VldNever=VldNever;
|
|
@@ -1,43 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
5
|
-
require('../registry.cjs');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* VldNull - Validates that a value is exactly null
|
|
9
|
-
* Part of Zod 4 API parity implementation
|
|
10
|
-
*/
|
|
11
|
-
function createNullError(message) {
|
|
12
|
-
return new errorsCore.VldError([{ code: 'invalid_type', path: [], message }]);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Null validator - validates that a value is exactly null
|
|
16
|
-
*/
|
|
17
|
-
class VldNull extends validators_base.VldBase {
|
|
18
|
-
constructor() {
|
|
19
|
-
super(validators_base.VLD_VALIDATOR_TYPES.NULL);
|
|
20
|
-
}
|
|
21
|
-
static create() {
|
|
22
|
-
return new VldNull();
|
|
23
|
-
}
|
|
24
|
-
get isSimple() {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
parse(value) {
|
|
28
|
-
if (value !== null) {
|
|
29
|
-
throw new Error(`Expected null, received ${typeof value}`);
|
|
30
|
-
}
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
33
|
-
safeParse(value) {
|
|
34
|
-
try {
|
|
35
|
-
return { success: true, data: this.parse(value) };
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return { success: false, error: createNullError(error.message) };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
exports.VldNull = VldNull;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-DrydF46s.cjs");require("../registry.cjs");class VldNull extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.NULL)}static create(){return new VldNull}get isSimple(){return!0}parse(e){if(null!==e)throw new Error("Expected null, received "+typeof e);return null}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:(s=e.message,new r.VldError([{code:"invalid_type",path:[],message:s}]))}}var s}}exports.VldNull=VldNull;
|