valrs 0.1.0
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/README.md +197 -0
- package/dist/compiler.d.ts +195 -0
- package/dist/compiler.d.ts.map +1 -0
- package/dist/compiler.js +349 -0
- package/dist/compiler.js.map +1 -0
- package/dist/error.d.ts +415 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +619 -0
- package/dist/error.js.map +1 -0
- package/dist/factory.d.ts +107 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +135 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/dist/primitives.d.ts +99 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +315 -0
- package/dist/primitives.js.map +1 -0
- package/dist/schema.d.ts +710 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +1179 -0
- package/dist/schema.js.map +1 -0
- package/dist/streaming.d.ts +159 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/streaming.js +692 -0
- package/dist/streaming.js.map +1 -0
- package/dist/types.d.ts +107 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +19 -0
- package/dist/types.js.map +1 -0
- package/dist/v.d.ts +1382 -0
- package/dist/v.d.ts.map +1 -0
- package/dist/v.js +2396 -0
- package/dist/v.js.map +1 -0
- package/dist/wasm.d.ts +86 -0
- package/dist/wasm.d.ts.map +1 -0
- package/dist/wasm.js +87 -0
- package/dist/wasm.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Primitive schema definitions.
|
|
3
|
+
*
|
|
4
|
+
* These schemas validate JavaScript primitives using the WASM bindings.
|
|
5
|
+
* Each schema implements both validation and JSON Schema generation.
|
|
6
|
+
*/
|
|
7
|
+
import { getWasm } from './wasm';
|
|
8
|
+
import { createSchemaWithJsonSchema, success, fail } from './factory';
|
|
9
|
+
/**
|
|
10
|
+
* Converts a WASM validation result to the Standard Schema format.
|
|
11
|
+
*/
|
|
12
|
+
function convertWasmResult(result) {
|
|
13
|
+
if (result.issues !== undefined && result.issues.length > 0) {
|
|
14
|
+
const issues = result.issues.map((issue) => {
|
|
15
|
+
const baseIssue = { message: issue.message };
|
|
16
|
+
if (issue.path !== undefined) {
|
|
17
|
+
return { ...baseIssue, path: issue.path };
|
|
18
|
+
}
|
|
19
|
+
return baseIssue;
|
|
20
|
+
});
|
|
21
|
+
return { issues };
|
|
22
|
+
}
|
|
23
|
+
return { value: result.value };
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Schema for validating string values.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* import { init, StringSchema } from 'valrs';
|
|
31
|
+
*
|
|
32
|
+
* await init();
|
|
33
|
+
*
|
|
34
|
+
* const result = StringSchema['~standard'].validate('hello');
|
|
35
|
+
* // { value: 'hello' }
|
|
36
|
+
*
|
|
37
|
+
* const invalid = StringSchema['~standard'].validate(123);
|
|
38
|
+
* // { issues: [{ message: 'Expected string' }] }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export const StringSchema = createSchemaWithJsonSchema((value) => {
|
|
42
|
+
try {
|
|
43
|
+
const wasm = getWasm();
|
|
44
|
+
const result = wasm.validateString(value);
|
|
45
|
+
return convertWasmResult(result);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Fallback if WASM is not available - pure JS validation
|
|
49
|
+
if (typeof value !== 'string') {
|
|
50
|
+
return fail('Expected string');
|
|
51
|
+
}
|
|
52
|
+
return success(value);
|
|
53
|
+
}
|
|
54
|
+
}, (target) => {
|
|
55
|
+
try {
|
|
56
|
+
const wasm = getWasm();
|
|
57
|
+
return wasm.stringJsonSchema(target);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Fallback JSON Schema
|
|
61
|
+
return { type: 'string' };
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Schema for validating number values (JavaScript number, IEEE 754 double).
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const result = NumberSchema['~standard'].validate(3.14);
|
|
70
|
+
* // { value: 3.14 }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export const NumberSchema = createSchemaWithJsonSchema((value) => {
|
|
74
|
+
try {
|
|
75
|
+
const wasm = getWasm();
|
|
76
|
+
const result = wasm.validateNumber(value);
|
|
77
|
+
return convertWasmResult(result);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
if (typeof value !== 'number' || Number.isNaN(value)) {
|
|
81
|
+
return fail('Expected number');
|
|
82
|
+
}
|
|
83
|
+
return success(value);
|
|
84
|
+
}
|
|
85
|
+
}, (target) => {
|
|
86
|
+
try {
|
|
87
|
+
const wasm = getWasm();
|
|
88
|
+
return wasm.numberJsonSchema(target);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return { type: 'number' };
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* Schema for validating boolean values.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const result = BooleanSchema['~standard'].validate(true);
|
|
100
|
+
* // { value: true }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export const BooleanSchema = createSchemaWithJsonSchema((value) => {
|
|
104
|
+
try {
|
|
105
|
+
const wasm = getWasm();
|
|
106
|
+
const result = wasm.validateBoolean(value);
|
|
107
|
+
return convertWasmResult(result);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
if (typeof value !== 'boolean') {
|
|
111
|
+
return fail('Expected boolean');
|
|
112
|
+
}
|
|
113
|
+
return success(value);
|
|
114
|
+
}
|
|
115
|
+
}, (target) => {
|
|
116
|
+
try {
|
|
117
|
+
const wasm = getWasm();
|
|
118
|
+
return wasm.booleanJsonSchema(target);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return { type: 'boolean' };
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
/**
|
|
125
|
+
* Schema for validating 32-bit signed integers.
|
|
126
|
+
*
|
|
127
|
+
* Range: -2,147,483,648 to 2,147,483,647
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```typescript
|
|
131
|
+
* const result = Int32Schema['~standard'].validate(42);
|
|
132
|
+
* // { value: 42 }
|
|
133
|
+
*
|
|
134
|
+
* const invalid = Int32Schema['~standard'].validate(3.14);
|
|
135
|
+
* // { issues: [{ message: 'Expected i32' }] }
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export const Int32Schema = createSchemaWithJsonSchema((value) => {
|
|
139
|
+
try {
|
|
140
|
+
const wasm = getWasm();
|
|
141
|
+
const result = wasm.validateI32(value);
|
|
142
|
+
return convertWasmResult(result);
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
146
|
+
return fail('Expected i32');
|
|
147
|
+
}
|
|
148
|
+
const MIN_I32 = -2147483648;
|
|
149
|
+
const MAX_I32 = 2147483647;
|
|
150
|
+
if (value < MIN_I32 || value > MAX_I32) {
|
|
151
|
+
return fail('Value out of i32 range');
|
|
152
|
+
}
|
|
153
|
+
return success(value);
|
|
154
|
+
}
|
|
155
|
+
}, (target) => {
|
|
156
|
+
try {
|
|
157
|
+
const wasm = getWasm();
|
|
158
|
+
return wasm.i32JsonSchema(target);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return {
|
|
162
|
+
type: 'integer',
|
|
163
|
+
minimum: -2147483648,
|
|
164
|
+
maximum: 2147483647,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
/**
|
|
169
|
+
* Schema for validating 64-bit signed integers.
|
|
170
|
+
*
|
|
171
|
+
* Note: JavaScript numbers can only safely represent integers up to 2^53 - 1.
|
|
172
|
+
* For full i64 range, consider using BigInt.
|
|
173
|
+
*
|
|
174
|
+
* Range: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
|
|
175
|
+
*/
|
|
176
|
+
export const Int64Schema = createSchemaWithJsonSchema((value) => {
|
|
177
|
+
try {
|
|
178
|
+
const wasm = getWasm();
|
|
179
|
+
const result = wasm.validateI64(value);
|
|
180
|
+
return convertWasmResult(result);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
184
|
+
return fail('Expected i64');
|
|
185
|
+
}
|
|
186
|
+
return success(value);
|
|
187
|
+
}
|
|
188
|
+
}, (target) => {
|
|
189
|
+
try {
|
|
190
|
+
const wasm = getWasm();
|
|
191
|
+
return wasm.i64JsonSchema(target);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return { type: 'integer' };
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
/**
|
|
198
|
+
* Schema for validating 32-bit unsigned integers.
|
|
199
|
+
*
|
|
200
|
+
* Range: 0 to 4,294,967,295
|
|
201
|
+
*/
|
|
202
|
+
export const Uint32Schema = createSchemaWithJsonSchema((value) => {
|
|
203
|
+
try {
|
|
204
|
+
const wasm = getWasm();
|
|
205
|
+
const result = wasm.validateU32(value);
|
|
206
|
+
return convertWasmResult(result);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
210
|
+
return fail('Expected u32');
|
|
211
|
+
}
|
|
212
|
+
const MAX_U32 = 4294967295;
|
|
213
|
+
if (value < 0 || value > MAX_U32) {
|
|
214
|
+
return fail('Value out of u32 range');
|
|
215
|
+
}
|
|
216
|
+
return success(value);
|
|
217
|
+
}
|
|
218
|
+
}, (target) => {
|
|
219
|
+
try {
|
|
220
|
+
const wasm = getWasm();
|
|
221
|
+
return wasm.u32JsonSchema(target);
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return {
|
|
225
|
+
type: 'integer',
|
|
226
|
+
minimum: 0,
|
|
227
|
+
maximum: 4294967295,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
/**
|
|
232
|
+
* Schema for validating 64-bit unsigned integers.
|
|
233
|
+
*
|
|
234
|
+
* Note: JavaScript numbers can only safely represent integers up to 2^53 - 1.
|
|
235
|
+
*
|
|
236
|
+
* Range: 0 to 18,446,744,073,709,551,615
|
|
237
|
+
*/
|
|
238
|
+
export const Uint64Schema = createSchemaWithJsonSchema((value) => {
|
|
239
|
+
try {
|
|
240
|
+
const wasm = getWasm();
|
|
241
|
+
const result = wasm.validateU64(value);
|
|
242
|
+
return convertWasmResult(result);
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
|
|
246
|
+
return fail('Expected u64');
|
|
247
|
+
}
|
|
248
|
+
return success(value);
|
|
249
|
+
}
|
|
250
|
+
}, (target) => {
|
|
251
|
+
try {
|
|
252
|
+
const wasm = getWasm();
|
|
253
|
+
return wasm.u64JsonSchema(target);
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return { type: 'integer', minimum: 0 };
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
/**
|
|
260
|
+
* Schema for validating 32-bit floating point numbers.
|
|
261
|
+
*/
|
|
262
|
+
export const Float32Schema = createSchemaWithJsonSchema((value) => {
|
|
263
|
+
try {
|
|
264
|
+
const wasm = getWasm();
|
|
265
|
+
const result = wasm.validateF32(value);
|
|
266
|
+
return convertWasmResult(result);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
if (typeof value !== 'number') {
|
|
270
|
+
return fail('Expected f32');
|
|
271
|
+
}
|
|
272
|
+
return success(value);
|
|
273
|
+
}
|
|
274
|
+
}, (target) => {
|
|
275
|
+
try {
|
|
276
|
+
const wasm = getWasm();
|
|
277
|
+
return wasm.f32JsonSchema(target);
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
return { type: 'number' };
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
/**
|
|
284
|
+
* Schema for validating 64-bit floating point numbers.
|
|
285
|
+
*/
|
|
286
|
+
export const Float64Schema = createSchemaWithJsonSchema((value) => {
|
|
287
|
+
try {
|
|
288
|
+
const wasm = getWasm();
|
|
289
|
+
const result = wasm.validateF64(value);
|
|
290
|
+
return convertWasmResult(result);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
if (typeof value !== 'number') {
|
|
294
|
+
return fail('Expected f64');
|
|
295
|
+
}
|
|
296
|
+
return success(value);
|
|
297
|
+
}
|
|
298
|
+
}, (target) => {
|
|
299
|
+
try {
|
|
300
|
+
const wasm = getWasm();
|
|
301
|
+
return wasm.f64JsonSchema(target);
|
|
302
|
+
}
|
|
303
|
+
catch {
|
|
304
|
+
return { type: 'number' };
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
/**
|
|
308
|
+
* Alias for Float64Schema - the default JavaScript number type.
|
|
309
|
+
*/
|
|
310
|
+
export { Float64Schema as DoubleSchema };
|
|
311
|
+
/**
|
|
312
|
+
* Alias for Int32Schema - commonly used integer type.
|
|
313
|
+
*/
|
|
314
|
+
export { Int32Schema as IntegerSchema };
|
|
315
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
|