zod 3.25.4 → 3.25.6
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/commonjs/v3/types.d.ts +1 -1
- package/dist/commonjs/v4/classic/errors.d.ts +1 -1
- package/dist/commonjs/v4/classic/errors.js +1 -0
- package/dist/commonjs/v4/classic/parse.d.ts +1 -1
- package/dist/commonjs/v4/classic/parse.js +2 -2
- package/dist/commonjs/v4/core/errors.d.ts +1 -1
- package/dist/commonjs/v4/core/errors.js +44 -0
- package/dist/commonjs/v4/core/parse.js +2 -2
- package/dist/esm/v3/types.d.ts +1 -1
- package/dist/esm/v4/classic/errors.d.ts +1 -1
- package/dist/esm/v4/classic/errors.js +1 -0
- package/dist/esm/v4/classic/parse.d.ts +1 -1
- package/dist/esm/v4/classic/parse.js +3 -3
- package/dist/esm/v4/core/errors.d.ts +1 -1
- package/dist/esm/v4/core/errors.js +11 -0
- package/dist/esm/v4/core/parse.js +2 -2
- package/package.json +1 -1
- package/src/v3/types.ts +1 -1
- package/src/v4/classic/errors.ts +2 -1
- package/src/v4/classic/parse.ts +3 -3
- package/src/v4/classic/tests/array.test.ts +42 -46
- package/src/v4/classic/tests/async-refinements.test.ts +14 -18
- package/src/v4/classic/tests/catch.test.ts +10 -12
- package/src/v4/classic/tests/discriminated-unions.test.ts +77 -87
- package/src/v4/classic/tests/enum.test.ts +33 -39
- package/src/v4/classic/tests/error-utils.test.ts +25 -27
- package/src/v4/classic/tests/error.test.ts +115 -128
- package/src/v4/classic/tests/literal.test.ts +10 -12
- package/src/v4/classic/tests/map.test.ts +60 -68
- package/src/v4/classic/tests/nested-refine.test.ts +68 -72
- package/src/v4/classic/tests/nonoptional.test.ts +36 -44
- package/src/v4/classic/tests/number.test.ts +36 -44
- package/src/v4/classic/tests/pipe.test.ts +18 -22
- package/src/v4/classic/tests/preprocess.test.ts +91 -107
- package/src/v4/classic/tests/primitive.test.ts +9 -11
- package/src/v4/classic/tests/record.test.ts +101 -121
- package/src/v4/classic/tests/set.test.ts +30 -36
- package/src/v4/classic/tests/string.test.ts +50 -60
- package/src/v4/classic/tests/template-literal.test.ts +45 -55
- package/src/v4/classic/tests/transform.test.ts +36 -46
- package/src/v4/classic/tests/tuple.test.ts +54 -66
- package/src/v4/core/errors.ts +12 -1
- package/src/v4/core/parse.ts +2 -2
- package/src/v4/core/tests/index.test.ts +42 -1
- package/src/v4/mini/tests/error.test.ts +1 -1
|
@@ -149,19 +149,17 @@ test("invalid discriminator value", () => {
|
|
|
149
149
|
|
|
150
150
|
expect(result).toMatchInlineSnapshot(`
|
|
151
151
|
{
|
|
152
|
-
"error": ZodError
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"path": [
|
|
160
|
-
"type",
|
|
161
|
-
],
|
|
162
|
-
},
|
|
152
|
+
"error": [ZodError: [
|
|
153
|
+
{
|
|
154
|
+
"code": "invalid_union",
|
|
155
|
+
"errors": [],
|
|
156
|
+
"note": "No matching discriminator",
|
|
157
|
+
"path": [
|
|
158
|
+
"type"
|
|
163
159
|
],
|
|
164
|
-
|
|
160
|
+
"message": "Invalid input"
|
|
161
|
+
}
|
|
162
|
+
]],
|
|
165
163
|
"success": false,
|
|
166
164
|
}
|
|
167
165
|
`);
|
|
@@ -177,49 +175,47 @@ test("invalid discriminator value - unionFallback", () => {
|
|
|
177
175
|
.safeParse({ type: "x", a: "abc" });
|
|
178
176
|
expect(result).toMatchInlineSnapshot(`
|
|
179
177
|
{
|
|
180
|
-
"error": ZodError
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"path": [
|
|
190
|
-
"type",
|
|
191
|
-
],
|
|
192
|
-
"values": [
|
|
193
|
-
"a",
|
|
194
|
-
],
|
|
195
|
-
},
|
|
178
|
+
"error": [ZodError: [
|
|
179
|
+
{
|
|
180
|
+
"code": "invalid_union",
|
|
181
|
+
"errors": [
|
|
182
|
+
[
|
|
183
|
+
{
|
|
184
|
+
"code": "invalid_value",
|
|
185
|
+
"values": [
|
|
186
|
+
"a"
|
|
196
187
|
],
|
|
197
|
-
[
|
|
198
|
-
|
|
199
|
-
"code": "invalid_value",
|
|
200
|
-
"message": "Invalid input: expected "b"",
|
|
201
|
-
"path": [
|
|
202
|
-
"type",
|
|
203
|
-
],
|
|
204
|
-
"values": [
|
|
205
|
-
"b",
|
|
206
|
-
],
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"code": "invalid_type",
|
|
210
|
-
"expected": "string",
|
|
211
|
-
"message": "Invalid input: expected string, received undefined",
|
|
212
|
-
"path": [
|
|
213
|
-
"b",
|
|
214
|
-
],
|
|
215
|
-
},
|
|
188
|
+
"path": [
|
|
189
|
+
"type"
|
|
216
190
|
],
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
191
|
+
"message": "Invalid input: expected \\"a\\""
|
|
192
|
+
}
|
|
193
|
+
],
|
|
194
|
+
[
|
|
195
|
+
{
|
|
196
|
+
"code": "invalid_value",
|
|
197
|
+
"values": [
|
|
198
|
+
"b"
|
|
199
|
+
],
|
|
200
|
+
"path": [
|
|
201
|
+
"type"
|
|
202
|
+
],
|
|
203
|
+
"message": "Invalid input: expected \\"b\\""
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"expected": "string",
|
|
207
|
+
"code": "invalid_type",
|
|
208
|
+
"path": [
|
|
209
|
+
"b"
|
|
210
|
+
],
|
|
211
|
+
"message": "Invalid input: expected string, received undefined"
|
|
212
|
+
}
|
|
213
|
+
]
|
|
221
214
|
],
|
|
222
|
-
|
|
215
|
+
"path": [],
|
|
216
|
+
"message": "Invalid input"
|
|
217
|
+
}
|
|
218
|
+
]],
|
|
223
219
|
"success": false,
|
|
224
220
|
}
|
|
225
221
|
`);
|
|
@@ -244,18 +240,16 @@ test("valid discriminator value, invalid data", () => {
|
|
|
244
240
|
// ];
|
|
245
241
|
expect(result).toMatchInlineSnapshot(`
|
|
246
242
|
{
|
|
247
|
-
"error": ZodError
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
"path": [
|
|
254
|
-
"a",
|
|
255
|
-
],
|
|
256
|
-
},
|
|
243
|
+
"error": [ZodError: [
|
|
244
|
+
{
|
|
245
|
+
"expected": "string",
|
|
246
|
+
"code": "invalid_type",
|
|
247
|
+
"path": [
|
|
248
|
+
"a"
|
|
257
249
|
],
|
|
258
|
-
|
|
250
|
+
"message": "Invalid input: expected string, received undefined"
|
|
251
|
+
}
|
|
252
|
+
]],
|
|
259
253
|
"success": false,
|
|
260
254
|
}
|
|
261
255
|
`);
|
|
@@ -333,18 +327,16 @@ test("async - invalid", async () => {
|
|
|
333
327
|
// },
|
|
334
328
|
// ]);
|
|
335
329
|
expect(result.error).toMatchInlineSnapshot(`
|
|
336
|
-
ZodError
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
"
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
],
|
|
347
|
-
}
|
|
330
|
+
[ZodError: [
|
|
331
|
+
{
|
|
332
|
+
"expected": "string",
|
|
333
|
+
"code": "invalid_type",
|
|
334
|
+
"path": [
|
|
335
|
+
"a"
|
|
336
|
+
],
|
|
337
|
+
"message": "Invalid input: expected string, received number"
|
|
338
|
+
}
|
|
339
|
+
]]
|
|
348
340
|
`);
|
|
349
341
|
});
|
|
350
342
|
|
|
@@ -509,19 +501,17 @@ test("single element union", () => {
|
|
|
509
501
|
expect(result).toMatchObject({ success: false });
|
|
510
502
|
expect(result).toMatchInlineSnapshot(`
|
|
511
503
|
{
|
|
512
|
-
"error": ZodError
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
"c",
|
|
520
|
-
"id",
|
|
521
|
-
],
|
|
522
|
-
},
|
|
504
|
+
"error": [ZodError: [
|
|
505
|
+
{
|
|
506
|
+
"expected": "string",
|
|
507
|
+
"code": "invalid_type",
|
|
508
|
+
"path": [
|
|
509
|
+
"c",
|
|
510
|
+
"id"
|
|
523
511
|
],
|
|
524
|
-
|
|
512
|
+
"message": "Invalid input: expected string, received undefined"
|
|
513
|
+
}
|
|
514
|
+
]],
|
|
525
515
|
"success": false,
|
|
526
516
|
}
|
|
527
517
|
`);
|
|
@@ -190,19 +190,17 @@ test("enum error message, invalid enum elementstring", () => {
|
|
|
190
190
|
expect(result.error!.issues.length).toEqual(1);
|
|
191
191
|
|
|
192
192
|
expect(result.error).toMatchInlineSnapshot(`
|
|
193
|
-
ZodError
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
],
|
|
205
|
-
}
|
|
193
|
+
[ZodError: [
|
|
194
|
+
{
|
|
195
|
+
"code": "invalid_value",
|
|
196
|
+
"values": [
|
|
197
|
+
"Tuna",
|
|
198
|
+
"Trout"
|
|
199
|
+
],
|
|
200
|
+
"path": [],
|
|
201
|
+
"message": "Invalid option: expected one of \\"Tuna\\"|\\"Trout\\""
|
|
202
|
+
}
|
|
203
|
+
]]
|
|
206
204
|
`);
|
|
207
205
|
});
|
|
208
206
|
|
|
@@ -212,19 +210,17 @@ test("enum error message, invalid type", () => {
|
|
|
212
210
|
expect(result.error!.issues.length).toEqual(1);
|
|
213
211
|
// expect(result.error!.issues[0].message).toEqual('Invalid input: expected one of "Tuna"|"Trout"');
|
|
214
212
|
expect(result.error).toMatchInlineSnapshot(`
|
|
215
|
-
ZodError
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
"
|
|
220
|
-
"
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
],
|
|
227
|
-
}
|
|
213
|
+
[ZodError: [
|
|
214
|
+
{
|
|
215
|
+
"code": "invalid_value",
|
|
216
|
+
"values": [
|
|
217
|
+
"Tuna",
|
|
218
|
+
"Trout"
|
|
219
|
+
],
|
|
220
|
+
"path": [],
|
|
221
|
+
"message": "Invalid option: expected one of \\"Tuna\\"|\\"Trout\\""
|
|
222
|
+
}
|
|
223
|
+
]]
|
|
228
224
|
`);
|
|
229
225
|
});
|
|
230
226
|
|
|
@@ -238,19 +234,17 @@ test("nativeEnum default error message", () => {
|
|
|
238
234
|
expect(result.error!.issues.length).toEqual(1);
|
|
239
235
|
// expect(result.error!.issues[0].message).toEqual('Invalid input: expected one of "Tuna"|"Trout"');
|
|
240
236
|
expect(result.error).toMatchInlineSnapshot(`
|
|
241
|
-
ZodError
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
],
|
|
253
|
-
}
|
|
237
|
+
[ZodError: [
|
|
238
|
+
{
|
|
239
|
+
"code": "invalid_value",
|
|
240
|
+
"values": [
|
|
241
|
+
"Tuna",
|
|
242
|
+
"Trout"
|
|
243
|
+
],
|
|
244
|
+
"path": [],
|
|
245
|
+
"message": "Invalid option: expected one of \\"Tuna\\"|\\"Trout\\""
|
|
246
|
+
}
|
|
247
|
+
]]
|
|
254
248
|
`);
|
|
255
249
|
});
|
|
256
250
|
|
|
@@ -14,34 +14,32 @@ const parsed = Test.safeParse({});
|
|
|
14
14
|
test("regular error", () => {
|
|
15
15
|
expect(parsed).toMatchInlineSnapshot(`
|
|
16
16
|
{
|
|
17
|
-
"error": ZodError
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"path": [
|
|
24
|
-
"f1",
|
|
25
|
-
],
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"code": "invalid_type",
|
|
29
|
-
"expected": "string",
|
|
30
|
-
"message": "Invalid input: expected string, received undefined",
|
|
31
|
-
"path": [
|
|
32
|
-
"f3",
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"code": "invalid_type",
|
|
37
|
-
"expected": "array",
|
|
38
|
-
"message": "Invalid input: expected array, received undefined",
|
|
39
|
-
"path": [
|
|
40
|
-
"f4",
|
|
41
|
-
],
|
|
42
|
-
},
|
|
17
|
+
"error": [ZodError: [
|
|
18
|
+
{
|
|
19
|
+
"expected": "number",
|
|
20
|
+
"code": "invalid_type",
|
|
21
|
+
"path": [
|
|
22
|
+
"f1"
|
|
43
23
|
],
|
|
24
|
+
"message": "Invalid input: expected number, received undefined"
|
|
44
25
|
},
|
|
26
|
+
{
|
|
27
|
+
"expected": "string",
|
|
28
|
+
"code": "invalid_type",
|
|
29
|
+
"path": [
|
|
30
|
+
"f3"
|
|
31
|
+
],
|
|
32
|
+
"message": "Invalid input: expected string, received undefined"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"expected": "array",
|
|
36
|
+
"code": "invalid_type",
|
|
37
|
+
"path": [
|
|
38
|
+
"f4"
|
|
39
|
+
],
|
|
40
|
+
"message": "Invalid input: expected array, received undefined"
|
|
41
|
+
}
|
|
42
|
+
]],
|
|
45
43
|
"success": false,
|
|
46
44
|
}
|
|
47
45
|
`);
|
|
@@ -471,7 +469,7 @@ test("inheritance", () => {
|
|
|
471
469
|
const e1 = new z.ZodError([]);
|
|
472
470
|
expect(e1).toBeInstanceOf(z.core.$ZodError);
|
|
473
471
|
expect(e1).toBeInstanceOf(z.ZodError);
|
|
474
|
-
expect(e1).not.toBeInstanceOf(Error);
|
|
472
|
+
// expect(e1).not.toBeInstanceOf(Error);
|
|
475
473
|
|
|
476
474
|
const e2 = new z.ZodRealError([]);
|
|
477
475
|
expect(e2).toBeInstanceOf(z.ZodError);
|