@oxog/vld 2.1.0 → 2.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +87 -0
- package/README.md +1296 -1235
- package/dist/chunks/errors-core-Cqi4-9ew.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-DKPohm9I.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 +20 -1
- package/dist/errors.js +1 -171
- package/dist/index.d.ts +248 -357
- 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 +63 -8
- package/dist/validators/base.js +1 -868
- package/dist/validators/base64.js +1 -68
- 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.js +1 -67
- package/dist/validators/date.js +1 -274
- package/dist/validators/discriminated-union.d.ts +2 -2
- package/dist/validators/discriminated-union.js +1 -123
- 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 +7 -3
- package/dist/validators/literal.js +1 -60
- 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 +20 -1
- package/dist/validators/number.js +1 -423
- package/dist/validators/object.d.ts +12 -2
- package/dist/validators/object.js +1 -864
- package/dist/validators/promise.js +1 -111
- package/dist/validators/record.d.ts +11 -8
- package/dist/validators/record.js +1 -258
- 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 +47 -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.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 +239 -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,187 +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 createTupleError(message) {
|
|
10
|
-
return new errorsCore.VldError([{ code: 'invalid_array', path: [], message }]);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Immutable tuple validator for fixed-length arrays
|
|
14
|
-
*/
|
|
15
|
-
class VldTuple extends validators_base.VldBase {
|
|
16
|
-
constructor(validators, errorMessage) {
|
|
17
|
-
super(validators_base.VLD_VALIDATOR_TYPES.TUPLE);
|
|
18
|
-
this.validators = validators;
|
|
19
|
-
this.errorMessage = errorMessage;
|
|
20
|
-
this._length = validators.length;
|
|
21
|
-
this._validatorTypes = validators.map(validator => validator.validatorType);
|
|
22
|
-
this._simpleItemModes = validators.map((validator, index) => this.getSimpleItemMode(validator, this._validatorTypes[index]));
|
|
23
|
-
this._simpleItemValues = validators.map((validator, index) => this._simpleItemModes[index] === 'literal' ? validator.literal : undefined);
|
|
24
|
-
}
|
|
25
|
-
get items() {
|
|
26
|
-
return this.validators;
|
|
27
|
-
}
|
|
28
|
-
getSimpleItemMode(validator, type) {
|
|
29
|
-
if (validator.isSimple !== true) {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
switch (type) {
|
|
33
|
-
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
34
|
-
return 'string';
|
|
35
|
-
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
36
|
-
return 'number';
|
|
37
|
-
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
38
|
-
return 'boolean';
|
|
39
|
-
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
40
|
-
return 'bigint';
|
|
41
|
-
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
42
|
-
return 'symbol';
|
|
43
|
-
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
44
|
-
return 'null';
|
|
45
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
46
|
-
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
47
|
-
return 'undefinedValue';
|
|
48
|
-
case validators_base.VLD_VALIDATOR_TYPES.LITERAL:
|
|
49
|
-
return 'literal';
|
|
50
|
-
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
51
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
52
|
-
return 'passthrough';
|
|
53
|
-
default:
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
getSimpleItemError(mode, expected, received) {
|
|
58
|
-
switch (mode) {
|
|
59
|
-
case 'string':
|
|
60
|
-
return locales_runtime.getMessages().invalidString;
|
|
61
|
-
case 'number':
|
|
62
|
-
return locales_runtime.getMessages().invalidNumber;
|
|
63
|
-
case 'boolean':
|
|
64
|
-
return locales_runtime.getMessages().invalidBoolean;
|
|
65
|
-
case 'bigint':
|
|
66
|
-
return locales_runtime.getMessages().invalidBigint;
|
|
67
|
-
case 'symbol':
|
|
68
|
-
return locales_runtime.getMessages().invalidSymbol;
|
|
69
|
-
case 'null':
|
|
70
|
-
return `Expected null, received ${typeof received}`;
|
|
71
|
-
case 'undefinedValue':
|
|
72
|
-
return locales_runtime.getMessages().expectedUndefined;
|
|
73
|
-
case 'literal':
|
|
74
|
-
return locales_runtime.getMessages().literalExpected(JSON.stringify(expected), JSON.stringify(received));
|
|
75
|
-
default:
|
|
76
|
-
return locales_runtime.getMessages().invalidTuple;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Create a new tuple validator
|
|
81
|
-
*/
|
|
82
|
-
static create(...validators) {
|
|
83
|
-
return new VldTuple(validators);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Parse and validate a tuple value
|
|
87
|
-
*/
|
|
88
|
-
parse(value) {
|
|
89
|
-
if (!Array.isArray(value)) {
|
|
90
|
-
throw new Error(this.errorMessage || locales_runtime.getMessages().invalidTuple);
|
|
91
|
-
}
|
|
92
|
-
return this.parseKnownTuple(value);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Parse a value that has already passed the tuple array type guard.
|
|
96
|
-
* @internal Used by object validators to avoid duplicate hot-path checks.
|
|
97
|
-
*/
|
|
98
|
-
parseKnownTuple(value) {
|
|
99
|
-
if (value.length !== this._length) {
|
|
100
|
-
throw new Error(this.errorMessage ||
|
|
101
|
-
locales_runtime.getMessages().tupleLength(this._length, value.length));
|
|
102
|
-
}
|
|
103
|
-
const result = new Array(this._length);
|
|
104
|
-
for (let i = 0; i < this._length; i++) {
|
|
105
|
-
const simpleMode = this._simpleItemModes[i];
|
|
106
|
-
const item = value[i];
|
|
107
|
-
if (simpleMode !== undefined) {
|
|
108
|
-
switch (simpleMode) {
|
|
109
|
-
case 'string':
|
|
110
|
-
if (typeof item !== 'string') {
|
|
111
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().invalidString));
|
|
112
|
-
}
|
|
113
|
-
result[i] = item;
|
|
114
|
-
continue;
|
|
115
|
-
case 'number':
|
|
116
|
-
if (typeof item !== 'number' || isNaN(item)) {
|
|
117
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().invalidNumber));
|
|
118
|
-
}
|
|
119
|
-
result[i] = item;
|
|
120
|
-
continue;
|
|
121
|
-
case 'boolean':
|
|
122
|
-
if (typeof item !== 'boolean') {
|
|
123
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().invalidBoolean));
|
|
124
|
-
}
|
|
125
|
-
result[i] = item;
|
|
126
|
-
continue;
|
|
127
|
-
case 'bigint':
|
|
128
|
-
if (typeof item !== 'bigint') {
|
|
129
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().invalidBigint));
|
|
130
|
-
}
|
|
131
|
-
result[i] = item;
|
|
132
|
-
continue;
|
|
133
|
-
case 'symbol':
|
|
134
|
-
if (typeof item !== 'symbol') {
|
|
135
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().invalidSymbol));
|
|
136
|
-
}
|
|
137
|
-
result[i] = item;
|
|
138
|
-
continue;
|
|
139
|
-
case 'null':
|
|
140
|
-
if (item !== null) {
|
|
141
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, this.getSimpleItemError(simpleMode, undefined, item)));
|
|
142
|
-
}
|
|
143
|
-
result[i] = null;
|
|
144
|
-
continue;
|
|
145
|
-
case 'undefinedValue':
|
|
146
|
-
if (item !== undefined) {
|
|
147
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, locales_runtime.getMessages().expectedUndefined));
|
|
148
|
-
}
|
|
149
|
-
result[i] = undefined;
|
|
150
|
-
continue;
|
|
151
|
-
case 'literal': {
|
|
152
|
-
const literal = this._simpleItemValues[i];
|
|
153
|
-
if (item !== literal) {
|
|
154
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, this.getSimpleItemError(simpleMode, literal, item)));
|
|
155
|
-
}
|
|
156
|
-
result[i] = literal;
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
case 'passthrough':
|
|
160
|
-
result[i] = item;
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
try {
|
|
165
|
-
const validator = this.validators[i];
|
|
166
|
-
result[i] = validator.parse(item);
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
throw new Error(locales_runtime.getMessages().arrayItem(i, error.message));
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return result;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Safely parse and validate a tuple value
|
|
176
|
-
*/
|
|
177
|
-
safeParse(value) {
|
|
178
|
-
try {
|
|
179
|
-
return { success: true, data: this.parse(value) };
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
return { success: false, error: createTupleError(error.message) };
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
exports.VldTuple = VldTuple;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DKPohm9I.cjs");function r(e){return new s.VldError([{code:"invalid_array",path:[],message:e}])}require("../registry.cjs"),require("../locales/en.cjs");class VldTuple extends e.VldBase{constructor(t,s,r=null){super(e.VLD_VALIDATOR_TYPES.TUPLE),this.validators=t,this.errorMessage=s,this.restValidator=r,this._length=t.length,this._validatorTypes=t.map(e=>e.validatorType),this._simpleItemModes=t.map((e,t)=>this.getSimpleItemMode(e,this._validatorTypes[t])),this._simpleItemValues=t.map((e,t)=>"literal"===this._simpleItemModes[t]?e.literal:void 0)}get items(){return this.validators}getSimpleItemMode(t,s){if(!0===t.isSimple)switch(s){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,s,r){switch(e){case"string":return t.getMessages().invalidString;case"number":return t.getMessages().invalidNumber;case"boolean":return t.getMessages().invalidBoolean;case"bigint":return t.getMessages().invalidBigint;case"symbol":return t.getMessages().invalidSymbol;case"null":return"Expected null, received "+typeof r;case"undefinedValue":return t.getMessages().expectedUndefined;case"literal":return t.getMessages().literalExpected(JSON.stringify(s),JSON.stringify(r));default:return t.getMessages().invalidTuple}}static create(...e){return new VldTuple(e)}rest(e){return new VldTuple(this.validators,this.errorMessage,e)}parse(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);return this.parseKnownTuple(e)}parseKnownTuple(e){if(null===this.restValidator&&e.length!==this._length||null!==this.restValidator&&e.length<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e.length));const s=new Array(e.length);for(let r=0;r<this._length;r++){const a=this._simpleItemModes[r],i=e[r];if(void 0!==a)switch(a){case"string":if("string"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidString));s[r]=i;continue;case"number":if("number"!=typeof i||isNaN(i))throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidNumber));s[r]=i;continue;case"boolean":if("boolean"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBoolean));s[r]=i;continue;case"bigint":if("bigint"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidBigint));s[r]=i;continue;case"symbol":if("symbol"!=typeof i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().invalidSymbol));s[r]=i;continue;case"null":if(null!==i)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,void 0,i)));s[r]=null;continue;case"undefinedValue":if(void 0!==i)throw new Error(t.getMessages().arrayItem(r,t.getMessages().expectedUndefined));s[r]=void 0;continue;case"literal":{const e=this._simpleItemValues[r];if(i!==e)throw new Error(t.getMessages().arrayItem(r,this.getSimpleItemError(a,e,i)));s[r]=e;continue}case"passthrough":s[r]=i;continue}try{const e=this.validators[r];s[r]=e.parse(i)}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}}if(this.restValidator)for(let r=this._length;r<e.length;r++)try{s[r]=this.restValidator.parse(e[r])}catch(e){throw new Error(t.getMessages().arrayItem(r,e.message))}return s}safeParse(e){try{return{success:!0,data:this.parse(e)}}catch(e){return{success:!1,error:r(e.message)}}}encode(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=this.validators[t].encode(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=this.restValidator.encode(e[t]);return s}safeEncode(e){try{return{success:!0,data:this.encode(e)}}catch(e){return{success:!1,error:r(e.message)}}}async encodeAsync(e){if(!Array.isArray(e))throw new Error(this.errorMessage||t.getMessages().invalidTuple);this.validateEncodedLength(e.length);const s=new Array(e.length);for(let t=0;t<this._length;t++)s[t]=await this.validators[t].encodeAsync(e[t]);if(this.restValidator)for(let t=this._length;t<e.length;t++)s[t]=await this.restValidator.encodeAsync(e[t]);return s}async safeEncodeAsync(e){try{return{success:!0,data:await this.encodeAsync(e)}}catch(e){return{success:!1,error:r(e.message)}}}validateEncodedLength(e){if(null===this.restValidator&&e!==this._length||null!==this.restValidator&&e<this._length)throw new Error(this.errorMessage||t.getMessages().tupleLength(this._length,e))}}exports.VldTuple=VldTuple;
|
|
@@ -1,106 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var errors = require('../errors.cjs');
|
|
5
|
-
var locales_runtime = require('../locales/runtime.cjs');
|
|
6
|
-
var errorsCore = require('../chunks/errors-core-DWxLFs2f.cjs');
|
|
7
|
-
require('../registry.cjs');
|
|
8
|
-
require('../pigment.cjs');
|
|
9
|
-
require('../locales/en.cjs');
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Uint8Array validator with immutable configuration
|
|
13
|
-
* BUG-NEW-010 FIX: Refactored to follow immutability pattern
|
|
14
|
-
*/
|
|
15
|
-
class VldUint8Array extends validators_base.VldBase {
|
|
16
|
-
/**
|
|
17
|
-
* Protected constructor to maintain immutability
|
|
18
|
-
*/
|
|
19
|
-
constructor(config) {
|
|
20
|
-
super(validators_base.VLD_VALIDATOR_TYPES.UINT8_ARRAY);
|
|
21
|
-
this.config = config || {};
|
|
22
|
-
}
|
|
23
|
-
parse(value) {
|
|
24
|
-
const result = this.safeParse(value);
|
|
25
|
-
if (!result.success) {
|
|
26
|
-
throw result.error;
|
|
27
|
-
}
|
|
28
|
-
return result.data;
|
|
29
|
-
}
|
|
30
|
-
safeParse(value) {
|
|
31
|
-
if (!(value instanceof Uint8Array)) {
|
|
32
|
-
return {
|
|
33
|
-
success: false,
|
|
34
|
-
error: new errorsCore.VldError([
|
|
35
|
-
errors.createIssue('invalid_type', [], locales_runtime.getMessages().expectedUint8Array)
|
|
36
|
-
])
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
// Check exact length if specified
|
|
40
|
-
if (this.config.exactLength !== undefined && value.length !== this.config.exactLength) {
|
|
41
|
-
return {
|
|
42
|
-
success: false,
|
|
43
|
-
error: new errorsCore.VldError([
|
|
44
|
-
errors.createIssue('custom', [], locales_runtime.getMessages().uint8ArrayExactLength(this.config.exactLength))
|
|
45
|
-
])
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
// Check minimum length
|
|
49
|
-
if (this.config.minLength !== undefined && value.length < this.config.minLength) {
|
|
50
|
-
return {
|
|
51
|
-
success: false,
|
|
52
|
-
error: new errorsCore.VldError([
|
|
53
|
-
errors.createIssue('custom', [], locales_runtime.getMessages().uint8ArrayMinLength(this.config.minLength))
|
|
54
|
-
])
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
// Check maximum length
|
|
58
|
-
if (this.config.maxLength !== undefined && value.length > this.config.maxLength) {
|
|
59
|
-
return {
|
|
60
|
-
success: false,
|
|
61
|
-
error: new errorsCore.VldError([
|
|
62
|
-
errors.createIssue('custom', [], locales_runtime.getMessages().uint8ArrayMaxLength(this.config.maxLength))
|
|
63
|
-
])
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return { success: true, data: value };
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Set minimum byte length
|
|
70
|
-
* Returns new immutable validator instance
|
|
71
|
-
*/
|
|
72
|
-
min(length) {
|
|
73
|
-
return new VldUint8Array({
|
|
74
|
-
...this.config,
|
|
75
|
-
minLength: length
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Set maximum byte length
|
|
80
|
-
* Returns new immutable validator instance
|
|
81
|
-
*/
|
|
82
|
-
max(length) {
|
|
83
|
-
return new VldUint8Array({
|
|
84
|
-
...this.config,
|
|
85
|
-
maxLength: length
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Set exact byte length
|
|
90
|
-
* Returns new immutable validator instance
|
|
91
|
-
* Clears min/max when setting exact length
|
|
92
|
-
*/
|
|
93
|
-
length(length) {
|
|
94
|
-
return new VldUint8Array({
|
|
95
|
-
exactLength: length,
|
|
96
|
-
// Clear min/max when exact length is set
|
|
97
|
-
minLength: undefined,
|
|
98
|
-
maxLength: undefined
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
static create() {
|
|
102
|
-
return new VldUint8Array();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
exports.VldUint8Array = VldUint8Array;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../errors.cjs"),t=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DKPohm9I.cjs");require("../registry.cjs"),require("../pigment.cjs"),require("../locales/en.cjs");class VldUint8Array extends e.VldBase{constructor(r){super(e.VLD_VALIDATOR_TYPES.UINT8_ARRAY),this.config=r||{}}parse(e){const r=this.safeParse(e);if(!r.success)throw r.error;return r.data}safeParse(e){return e instanceof Uint8Array?void 0!==this.config.exactLength&&e.length!==this.config.exactLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayExactLength(this.config.exactLength))])}:void 0!==this.config.minLength&&e.length<this.config.minLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMinLength(this.config.minLength))])}:void 0!==this.config.maxLength&&e.length>this.config.maxLength?{success:!1,error:new s.VldError([r.createIssue("custom",[],t.getMessages().uint8ArrayMaxLength(this.config.maxLength))])}:{success:!0,data:e}:{success:!1,error:new s.VldError([r.createIssue("invalid_type",[],t.getMessages().expectedUint8Array)])}}min(e){return new VldUint8Array({...this.config,minLength:e})}max(e){return new VldUint8Array({...this.config,maxLength:e})}length(e){return new VldUint8Array({exactLength:e,minLength:void 0,maxLength:void 0})}static create(){return new VldUint8Array}}exports.VldUint8Array=VldUint8Array;
|
|
@@ -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
|
-
* VldUndefined - Validates that a value is exactly undefined
|
|
9
|
-
* Part of Zod 4 API parity implementation
|
|
10
|
-
*/
|
|
11
|
-
function createUndefinedError(message) {
|
|
12
|
-
return new errorsCore.VldError([{ code: 'invalid_type', path: [], message }]);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Undefined validator - validates that a value is exactly undefined
|
|
16
|
-
*/
|
|
17
|
-
class VldUndefined extends validators_base.VldBase {
|
|
18
|
-
constructor() {
|
|
19
|
-
super(validators_base.VLD_VALIDATOR_TYPES.UNDEFINED);
|
|
20
|
-
}
|
|
21
|
-
static create() {
|
|
22
|
-
return new VldUndefined();
|
|
23
|
-
}
|
|
24
|
-
get isSimple() {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
parse(value) {
|
|
28
|
-
if (value !== undefined) {
|
|
29
|
-
throw new Error(`Expected undefined, received ${typeof value}`);
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
safeParse(value) {
|
|
34
|
-
try {
|
|
35
|
-
return { success: true, data: this.parse(value) };
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return { success: false, error: createUndefinedError(error.message) };
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
exports.VldUndefined = VldUndefined;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../chunks/errors-core-DKPohm9I.cjs");require("../registry.cjs");class VldUndefined extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNDEFINED)}static create(){return new VldUndefined}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error("Expected undefined, received "+typeof 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_type",path:[],message:s}]))}}var s}}exports.VldUndefined=VldUndefined;
|
|
@@ -1,191 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
var locales_runtime = require('../locales/runtime.cjs');
|
|
5
|
-
require('../registry.cjs');
|
|
6
|
-
require('../locales/en.cjs');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Optimized immutable union validator for multiple type options
|
|
10
|
-
* Features type-checking shortcuts for 110x performance improvement
|
|
11
|
-
*/
|
|
12
|
-
class VldUnion extends validators_base.VldBase {
|
|
13
|
-
/**
|
|
14
|
-
* Private constructor to enforce immutability
|
|
15
|
-
*/
|
|
16
|
-
constructor(validators, errorMessage) {
|
|
17
|
-
super(validators_base.VLD_VALIDATOR_TYPES.UNION);
|
|
18
|
-
this.validators = validators;
|
|
19
|
-
this.errorMessage = errorMessage;
|
|
20
|
-
this.typeCheckers = validators.map(validator => this.createTypeChecker(validator));
|
|
21
|
-
this.simpleModes = validators.map(validator => this.createSimpleMode(validator));
|
|
22
|
-
this.simpleValues = validators.map((validator, i) => this.simpleModes[i] === 'literal' ? validator.literal : undefined);
|
|
23
|
-
}
|
|
24
|
-
createSimpleMode(validator) {
|
|
25
|
-
if (validator.isSimple !== true) {
|
|
26
|
-
return undefined;
|
|
27
|
-
}
|
|
28
|
-
switch (validator.validatorType) {
|
|
29
|
-
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
30
|
-
return 'string';
|
|
31
|
-
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
32
|
-
return 'number';
|
|
33
|
-
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
34
|
-
return 'boolean';
|
|
35
|
-
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
36
|
-
return 'bigint';
|
|
37
|
-
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
38
|
-
return 'symbol';
|
|
39
|
-
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
40
|
-
return 'null';
|
|
41
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
42
|
-
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
43
|
-
return 'undefined';
|
|
44
|
-
case validators_base.VLD_VALIDATOR_TYPES.LITERAL:
|
|
45
|
-
return 'literal';
|
|
46
|
-
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
47
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
48
|
-
return 'passthrough';
|
|
49
|
-
default:
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
parseSimpleValue(mode, index, value) {
|
|
54
|
-
switch (mode) {
|
|
55
|
-
case 'string':
|
|
56
|
-
case 'number':
|
|
57
|
-
case 'boolean':
|
|
58
|
-
case 'bigint':
|
|
59
|
-
case 'symbol':
|
|
60
|
-
return value;
|
|
61
|
-
case 'null':
|
|
62
|
-
return null;
|
|
63
|
-
case 'undefined':
|
|
64
|
-
return undefined;
|
|
65
|
-
case 'literal':
|
|
66
|
-
return this.simpleValues[index];
|
|
67
|
-
case 'passthrough':
|
|
68
|
-
return value;
|
|
69
|
-
default:
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Create type checker based on validator type for fast path optimization
|
|
75
|
-
* Uses a safer approach that's less prone to spoofing
|
|
76
|
-
*/
|
|
77
|
-
createTypeChecker(validator) {
|
|
78
|
-
switch (validator.validatorType) {
|
|
79
|
-
case validators_base.VLD_VALIDATOR_TYPES.STRING:
|
|
80
|
-
return (v) => typeof v === 'string';
|
|
81
|
-
case validators_base.VLD_VALIDATOR_TYPES.NUMBER:
|
|
82
|
-
return (v) => typeof v === 'number' && !isNaN(v);
|
|
83
|
-
case validators_base.VLD_VALIDATOR_TYPES.BOOLEAN:
|
|
84
|
-
return (v) => typeof v === 'boolean';
|
|
85
|
-
case validators_base.VLD_VALIDATOR_TYPES.BIGINT:
|
|
86
|
-
return (v) => typeof v === 'bigint';
|
|
87
|
-
case validators_base.VLD_VALIDATOR_TYPES.SYMBOL:
|
|
88
|
-
return (v) => typeof v === 'symbol';
|
|
89
|
-
case validators_base.VLD_VALIDATOR_TYPES.NAN:
|
|
90
|
-
return (v) => typeof v === 'number' && Number.isNaN(v);
|
|
91
|
-
case validators_base.VLD_VALIDATOR_TYPES.ARRAY:
|
|
92
|
-
return Array.isArray;
|
|
93
|
-
case validators_base.VLD_VALIDATOR_TYPES.OBJECT:
|
|
94
|
-
return (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
95
|
-
case validators_base.VLD_VALIDATOR_TYPES.NULL:
|
|
96
|
-
return (v) => v === null;
|
|
97
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNDEFINED:
|
|
98
|
-
case validators_base.VLD_VALIDATOR_TYPES.VOID:
|
|
99
|
-
return (v) => v === undefined;
|
|
100
|
-
case validators_base.VLD_VALIDATOR_TYPES.ENUM:
|
|
101
|
-
return (v) => typeof v === 'string' || typeof v === 'number';
|
|
102
|
-
case validators_base.VLD_VALIDATOR_TYPES.LITERAL: {
|
|
103
|
-
const literal = validator.literal;
|
|
104
|
-
return (v) => v === literal;
|
|
105
|
-
}
|
|
106
|
-
case validators_base.VLD_VALIDATOR_TYPES.NEVER:
|
|
107
|
-
return () => false;
|
|
108
|
-
case validators_base.VLD_VALIDATOR_TYPES.ANY:
|
|
109
|
-
case validators_base.VLD_VALIDATOR_TYPES.UNKNOWN:
|
|
110
|
-
return () => true;
|
|
111
|
-
default:
|
|
112
|
-
return () => true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Create a new union validator
|
|
117
|
-
*/
|
|
118
|
-
static create(...validators) {
|
|
119
|
-
return new VldUnion(validators);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Parse and validate a value against union options
|
|
123
|
-
* Optimized with type checking and direct parsing to avoid success-result allocations
|
|
124
|
-
* BUG-NEW-013 FIX: Single-pass error collection to avoid double parsing
|
|
125
|
-
*/
|
|
126
|
-
parse(value) {
|
|
127
|
-
// Single pass: collect errors during validation
|
|
128
|
-
const errors = [];
|
|
129
|
-
for (let i = 0; i < this.validators.length; i++) {
|
|
130
|
-
const validator = this.validators[i];
|
|
131
|
-
const typeChecker = this.typeCheckers[i];
|
|
132
|
-
// Skip validators that definitely won't match based on type
|
|
133
|
-
if (typeChecker && !typeChecker(value)) {
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
const simpleMode = this.simpleModes[i];
|
|
137
|
-
if (simpleMode !== undefined) {
|
|
138
|
-
return this.parseSimpleValue(simpleMode, i, value);
|
|
139
|
-
}
|
|
140
|
-
try {
|
|
141
|
-
return validator.parse(value);
|
|
142
|
-
}
|
|
143
|
-
catch (error) {
|
|
144
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
145
|
-
errors.push(message);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// All validators failed - throw with collected errors
|
|
149
|
-
throw new Error(this.errorMessage ||
|
|
150
|
-
locales_runtime.getMessages().unionNoMatch(errors));
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Safely parse and validate a value against union options
|
|
154
|
-
* Optimized version using type checking shortcuts
|
|
155
|
-
* BUG-NEW-013 FIX: Single-pass error collection to avoid double parsing
|
|
156
|
-
*/
|
|
157
|
-
safeParse(value) {
|
|
158
|
-
// Single pass: collect errors during validation
|
|
159
|
-
const errors = [];
|
|
160
|
-
for (let i = 0; i < this.validators.length; i++) {
|
|
161
|
-
const validator = this.validators[i];
|
|
162
|
-
const typeChecker = this.typeCheckers[i];
|
|
163
|
-
// Skip validators that definitely won't match based on type
|
|
164
|
-
if (typeChecker && !typeChecker(value)) {
|
|
165
|
-
continue;
|
|
166
|
-
}
|
|
167
|
-
const simpleMode = this.simpleModes[i];
|
|
168
|
-
if (simpleMode !== undefined) {
|
|
169
|
-
return {
|
|
170
|
-
success: true,
|
|
171
|
-
data: this.parseSimpleValue(simpleMode, i, value)
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
try {
|
|
175
|
-
return { success: true, data: validator.parse(value) };
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
179
|
-
errors.push(message);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// All validators failed - return error with collected messages
|
|
183
|
-
return {
|
|
184
|
-
success: false,
|
|
185
|
-
error: new Error(this.errorMessage ||
|
|
186
|
-
locales_runtime.getMessages().unionNoMatch(errors))
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
exports.VldUnion = VldUnion;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldUnion extends e.VldBase{constructor(r,s){super(e.VLD_VALIDATOR_TYPES.UNION),this.validators=r,this.errorMessage=s,this.typeCheckers=r.map(e=>this.createTypeChecker(e)),this.simpleModes=r.map(e=>this.createSimpleMode(e)),this.simpleValues=r.map((e,r)=>"literal"===this.simpleModes[r]?e.literal:void 0)}createSimpleMode(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"undefined";case e.VLD_VALIDATOR_TYPES.LITERAL:return"literal";case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:return"passthrough";default:return}}parseSimpleValue(e,r,s){switch(e){case"string":case"number":case"boolean":case"bigint":case"symbol":case"passthrough":return s;case"null":return null;case"undefined":default:return;case"literal":return this.simpleValues[r]}}createTypeChecker(r){switch(r.validatorType){case e.VLD_VALIDATOR_TYPES.STRING:return e=>"string"==typeof e;case e.VLD_VALIDATOR_TYPES.NUMBER:return e=>"number"==typeof e&&!isNaN(e);case e.VLD_VALIDATOR_TYPES.BOOLEAN:return e=>"boolean"==typeof e;case e.VLD_VALIDATOR_TYPES.BIGINT:return e=>"bigint"==typeof e;case e.VLD_VALIDATOR_TYPES.SYMBOL:return e=>"symbol"==typeof e;case e.VLD_VALIDATOR_TYPES.NAN:return e=>"number"==typeof e&&Number.isNaN(e);case e.VLD_VALIDATOR_TYPES.ARRAY:return Array.isArray;case e.VLD_VALIDATOR_TYPES.OBJECT:return e=>"object"==typeof e&&null!==e&&!Array.isArray(e);case e.VLD_VALIDATOR_TYPES.NULL:return e=>null===e;case e.VLD_VALIDATOR_TYPES.UNDEFINED:case e.VLD_VALIDATOR_TYPES.VOID:return e=>void 0===e;case e.VLD_VALIDATOR_TYPES.ENUM:return e=>"string"==typeof e||"number"==typeof e;case e.VLD_VALIDATOR_TYPES.LITERAL:{const e=r.literal;return r=>r===e}case e.VLD_VALIDATOR_TYPES.NEVER:return()=>!1;case e.VLD_VALIDATOR_TYPES.ANY:case e.VLD_VALIDATOR_TYPES.UNKNOWN:default:return()=>!0}}static create(...e){return new VldUnion(e)}parse(e){const s=[];for(let r=0;r<this.validators.length;r++){const t=this.validators[r],a=this.typeCheckers[r];if(a&&!a(e))continue;const n=this.simpleModes[r];if(void 0!==n)return this.parseSimpleValue(n,r,e);try{return t.parse(e)}catch(e){const r=e instanceof Error?e.message:String(e);s.push(r)}}throw new Error(this.errorMessage||r.getMessages().unionNoMatch(s))}safeParse(e){const s=[];for(let r=0;r<this.validators.length;r++){const t=this.validators[r],a=this.typeCheckers[r];if(a&&!a(e))continue;const n=this.simpleModes[r];if(void 0!==n)return{success:!0,data:this.parseSimpleValue(n,r,e)};try{return{success:!0,data:t.parse(e)}}catch(e){const r=e instanceof Error?e.message:String(e);s.push(r)}}return{success:!1,error:new Error(this.errorMessage||r.getMessages().unionNoMatch(s))}}}exports.VldUnion=VldUnion;
|
|
@@ -1,40 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var validators_base = require('./base.cjs');
|
|
4
|
-
require('../registry.cjs');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Validator that accepts unknown values
|
|
8
|
-
*/
|
|
9
|
-
class VldUnknown extends validators_base.VldBase {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(validators_base.VLD_VALIDATOR_TYPES.UNKNOWN);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Create a new unknown validator
|
|
15
|
-
*/
|
|
16
|
-
static create() {
|
|
17
|
-
return new VldUnknown();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Returns true because unknown accepts every input without checks.
|
|
21
|
-
* Used by composite validators for passthrough fast paths.
|
|
22
|
-
*/
|
|
23
|
-
get isSimple() {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Parse unknown value (always succeeds)
|
|
28
|
-
*/
|
|
29
|
-
parse(value) {
|
|
30
|
-
return value;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Safely parse unknown value (always succeeds)
|
|
34
|
-
*/
|
|
35
|
-
safeParse(value) {
|
|
36
|
-
return { success: true, data: value };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.VldUnknown = VldUnknown;
|
|
1
|
+
"use strict";var e=require("./base.cjs");require("../registry.cjs");class VldUnknown extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.UNKNOWN)}static create(){return new VldUnknown}get isSimple(){return!0}parse(e){return e}safeParse(e){return{success:!0,data:e}}}exports.VldUnknown=VldUnknown;
|
|
@@ -1,48 +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 only accepts undefined
|
|
11
|
-
*/
|
|
12
|
-
class VldVoid extends validators_base.VldBase {
|
|
13
|
-
constructor() {
|
|
14
|
-
super(validators_base.VLD_VALIDATOR_TYPES.VOID);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create a new void validator
|
|
18
|
-
*/
|
|
19
|
-
static create() {
|
|
20
|
-
return new VldVoid();
|
|
21
|
-
}
|
|
22
|
-
get isSimple() {
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Parse void value (must be undefined)
|
|
27
|
-
*/
|
|
28
|
-
parse(value) {
|
|
29
|
-
if (value !== undefined) {
|
|
30
|
-
throw new Error(locales_runtime.getMessages().expectedUndefined);
|
|
31
|
-
}
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Safely parse void value
|
|
36
|
-
*/
|
|
37
|
-
safeParse(value) {
|
|
38
|
-
if (value === undefined) {
|
|
39
|
-
return { success: true, data: undefined };
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
success: false,
|
|
43
|
-
error: new errorsCore.VldError([{ code: 'invalid_type', path: [], message: locales_runtime.getMessages().expectedUndefined }])
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
exports.VldVoid = VldVoid;
|
|
1
|
+
"use strict";var e=require("./base.cjs"),r=require("../locales/runtime.cjs"),s=require("../chunks/errors-core-DKPohm9I.cjs");require("../registry.cjs"),require("../locales/en.cjs");class VldVoid extends e.VldBase{constructor(){super(e.VLD_VALIDATOR_TYPES.VOID)}static create(){return new VldVoid}get isSimple(){return!0}parse(e){if(void 0!==e)throw new Error(r.getMessages().expectedUndefined)}safeParse(e){return void 0===e?{success:!0,data:void 0}:{success:!1,error:new s.VldError([{code:"invalid_type",path:[],message:r.getMessages().expectedUndefined}])}}}exports.VldVoid=VldVoid;
|